当前位置: 首页 > news >正文

网站用户注册增加办法小说网站的阅读界面怎么做的

网站用户注册增加办法,小说网站的阅读界面怎么做的,网站建设管理工作交流发言材料,网页上传和网站开发最近有些朋友在看《深入浅出MFC》的时候,被第三章的几个宏给卡住了,记得我第一次看此书时,也被这几个宏给卡住。当然真正卡人的其实是第一个,也就是DECLARE_DYNAMIC/IMPLEMENT_DYNAMIC。我做了一个详解,供同样被卡住的…

最近有些朋友在看《深入浅出MFC》的时候,被第三章的几个宏给卡住了,记得我第一次看此书时,也被这几个宏给卡住。当然真正卡人的其实是第一个,也就是DECLARE_DYNAMIC/IMPLEMENT_DYNAMIC。我做了一个详解,供同样被卡住的朋友做个参考:) 说明:这两个宏的主要目的,是在所指定的class(比如CView)的声明和实现里,加上一些静态成员函数和静态成员变量。所以,不要管“/”这个换行标志,就把里面的每一句话当作是在类里的声明或者是实现。另外,“##”和"#"符号我就不不赘述了。 另外,建议结合《深入浅出MFC》这本书,JJHou写了一些展开宏的实例,结合实例看这个解释可能效果会比较好一点:) DECLARE_DYNAMIC/IMPLEMENT_DYNAMIC #define DECLARE_DYNAMIC(class_name)/ public:/ static CRuntimeClass class##class_name;/ //声明一个类型为CRuntimeClass的静态public成员变量,变量名是由字符串"class" //与所指定的类的类名组成。举例而言,如果你写DECLARE_DYNAMIC(CMyView),则等于声明了一个 // static CRuntimeClass classCMyView静态变量 virtual CRuntimeClass* GetRuntimeClass() const;/ //声明一个虚函数,函数名为GetRuntimeClass,返回值为CRuntimeClass类型的指针 //无参数,并且是个const函数 #define IMPLEMENT_DYNAMIC(class_name,bass_class_name)/ _IMPLEMENT_RUNTIMECLASS(class_name,base_class_name,0xFFFF,NULL) #define _IMPLEMENT_RUNTIMECLASS(class_name,base_class_name,wSchema,pfnNew)/ static char _lpsz##class_name[]= #class_name;/ //定义一个C类型字符串静态变量,变量名由"_lpsz"和指定类的类名组成,变量值为该指定类型的名字 //比如是CMyView,那么定义的就是static char _lpszCMyView="CMyView"; CRuntimeClass class_name::class##class_name = {/ _lpsz##class_name,sizeof(class_name),wSchema,pfnNew,/ RUNTIME_CLASS(base_class_name),NULL};/ //给之前在DECLARE_DYNAMIC里定义的CRuntimeClass类型的静态成员变量赋值 //当然,除最后一个m_pNextClass没有赋值(赋值为NULL,它由下面的结构处理) static AFX_CLASSINIT _init_##class_name(&class_name::class##class_name);/ //初始化一个名为"_init_##class_name"的AFX_CLASSINIT静态结构,主要作用是给指定的class_name的 //class##class_name静态变量的最后一个成员m_pNextClass赋值,具体见下面解释AFX_CLASSINIT中 CRuntimeClass* class_name::GetRuntimeClass() const/ { return &class_name::class##class_name;}/ //之前在DECLARE_DYNAMIC里定义的GetRuntimeClass的实现,很简单,就一个return语句。 #define RUNTIME_CLASS(class_name)/ (&class_name::class##class_name) //这部分之所以单独define出一个宏,主要是为了方便从某个指定的class直接得到它的CRuntimeclass静态成员 //以下是解释AFX_CLASSINIT结构,注意,这不是一个宏 //为了看得更加清楚,我按照struct定义的惯常格式来写这个struct的定义 struct AFX_CLASSINIT { AFX_CLASSINIT(CRuntimeClass *pNewClass); }; AFX_CLASSINIT::AFX_CLASSINIT(CRuntimeClass *pNewClass) { pNewClass->m_pNextClass = CRuntimeClass::pFirstClass; //让m_pNextClass指向pFirstClass所指的CRuntimeClass变量 CRuntimeClass::pFirstClass = pNewClass; //让pFirstClass指向pNewClass所指的变量,也就是本class的CRuntimeClass静态变量 }

http://www.yayakq.cn/news/632286/

相关文章:

  • 广东 网站建设如何做网站图片
  • 网站做我女朋友中国第一作文网官网
  • 环保网站建设说明呼和浩特企业网站
  • 亿网行网站建设114企业网电力建设期刊网站
  • 建筑网站 法人签字麻将app开发公司
  • 广州百度关键词推广沈阳百度seo关键词优化排名
  • 安徽省工程建设信息网网站网站影响seo的标签
  • 网页设计入门教学视频网络优化软件
  • 佛山做网站推广常州做网站包括哪些
  • 中色冶金建设有限公司网站泰安网上房地产
  • 深圳市深圳市住房和建设局网站首页网站地图的制作
  • 自己的电脑做网站服务器吗深圳航空公司最新官网
  • 科技服务网站建设方案沂水网站优化
  • 建设淘宝客网站技术支持 哈尔滨网站建设
  • 云南做网站价格网站建设教学廊坊
  • 为什么建设厅的网站不好打开网站建设的基本要素
  • 做淘宝客导购网站云南seo网站关键词优化软件
  • 北京建站公司哪个好网站编排
  • 郑州网站权重做游戏用什么电脑系统下载网站好
  • 在哪里做企业网站网页设计师需要学什么专业
  • 武宁网站ui专业设计我们的优势的网站
  • 纺织服装板块上市公司网站建设国外专门做视频翻译网站吗
  • 个人网站设计及实现php网页设计实例代码
  • 网站开发技术有哪些网站排名带照片怎么做
  • 中小企业网站建设平台网页程序设计软件
  • 2016网站优化网络设计案例题
  • 做外贸的在哪些网站找工作公司官网网址
  • 微网站搭建平台wordpress导航网站模板下载
  • 做网站一般多少钱涿州做网站建设
  • 石龙网站仿做做动漫姓氏头像的网站