VC++学习笔记1-类向导的理解
VC的难点之一就是代码的组织问题,根据个人理解,整理如下学习,水平有限。错误难免,欢迎纠正。
一、 程序入口
**APP类(这里是CUpdateAppApp)的虚方法Initinstance()定义程序入口
选择InitInstance,并点击“编辑代码”,会出现相应的代码
二、 类向导
(一)命令标签
先选对象ID,后选择消息,然后“添加处理程序”,向导会在成员函数中加入相应的方法。你只需要上句该成员函数就可以编辑代码了。
加灰色线条的例子:ON_BN_CLICKED就是消息名,OnBnClickedCancel就是成员函数
IDCANCEL就是对象ID,并对应上图
(二)消息标签
消息类型通过“搜索消息”的下拉箭头选择(如下图)
上图中的WM_PAINT对应的是OnPaint()函数(这是向导给的)
先选择消息类型并选择消息,后“添加处理程序”,后编辑代码这样才能执行该消息。
代码中的展示
ON_WM_PAINT对应OnPaint是向导自动给的
系统消息的注意下图(这里做了比较,重点在“系统消息”上),
使用了afx_msg的前缀,并使用了DECLARE_MESSAGE_MAP
对应的MAP如下(系统消息部分)
对应实现代码
(三)虚函数
使用方法参考(二)消息标签部分。
函数声明使用了virtual 前缀;实现代码中使用了父类的方法。
(四)成员变量
该类的所有变量声明
(五)成员方法
该类的所有函数方法。前面的命令、消息、虚函数都是使用的函数来处理的。这里都有展示。
三、 DDX 、DDV使用
适用于窗口控件(对象ID)与自定义类的关联。
(一) 首先可以通过类向导新建类,并定义响应的虚函数、消息等方法。
添加类可以实现红色框中的四种类型或C++的一般类型。
上图中的类CSafeEdit是基于MFC的类,DefwindowsProc是重写的虚函数
代码如下
(二) 在窗口类中声明该类的类型
如上图的CSafeEdit类
(三) 在窗口上使用虚方法DoDataExchange
在定义里实现给方法的对应
IDC_EDIT2就是该窗口的控件,它对应的就是自定义类的变量m_safeedit
m_safeedit所调用的所有方法就会相应的影响IDC_EDIT2对象在窗口类的的展示效果。
同理:该变量可对应与多个控件,只要是加入”DDX_”即可。