文章目录
- UI控件相关
- CDialog::OnInitDialog() 对话框初始化
- 手动添加
- UpdateData() 刷新窗口数据
- DoDataExchange()数据与控件动态绑定
- afx_msg: 声明一个消息响应函数
- void AFXAPI DDX_Control( CDataExchange* pDX, int nIDC, CWnd& rControl );
- DDV_MaxChars()
UI控件相关
CDialog::OnInitDialog() 对话框初始化
调用这个成员函数是对WM_INITDIALOG消息作出的反应。这条消息是在对话框即将显示之前,在Create,CreateIndirect或DoModal调用期间发出的。
如果在对话框初始化后需要执行特别处理,覆盖该函数。首先调用基类OnInitDialog,但不考虑其返回值。正常情况下,覆盖的函数返回TRUE。Windows调用OnInitDialog函数是通过标准的全局对话框过程(它们对于所有的Microsoft基础类库的对话框是通用的),而不是通过消息映射。因此该函数不需要消息映射入口。
手动添加
通常创建完MFC应用程序后,系统会自动创建OnInitDialog()。但是当添加了子对话框类后,有时候系统却不会自动为子对话框类添加OnInitDialog()函数,这时就需要我们自己来添加了。
- 在MFC【类向导】配置界面,依次选择虚函数、 OnInitDialog、添加函数、确定,OnInitDialog()函数就自动添加到子对话框类中了。
MFC如何添加OnInitDialog()函数
UpdateData() 刷新窗口数据
MFC的窗口函数,用来刷新数据的。
操作系统会调用这个函数来初始化对话框中的数据,或者检索或者验证对话框中的数据。
当你使用了ClassWizard建立了控件和变量之间的联系后:
UpdateData(TRUE):将控件的值赋值给成员变量;
UpdateData(FALSE):将成员变量的值赋值给控件。
DoDataExchange()数据与控件动态绑定
afx_msg: 声明一个消息响应函数
Afx前缀是微软MFC一个小组的名称简写,并没有别的意义。MFC的很多代码,包括全局函数名、宏、头文件名都使用了"Afx"。Afx*.h是一组MFC的核心头文件,比如: afxwin.h 定义MFC的核心和标准组件;afxext.h 定义MFC的扩展;afxdisp.h 是MFC自动化支持的类定义头文件;afxdb.h 是MFC的ODBC类封装。
afx_msg void OnBnClickedButton(); 其中 afx_msg为消息标志,它向系统声明:有消息映射到函数实现体;而在map宏定义中,就有具体消息和此函数的映射定义(可以是自定义,也可以是系统自动完成的)
void AFXAPI DDX_Control( CDataExchange* pDX, int nIDC, CWnd& rControl );
- pDX是 指向CDataExchange对象的指针。这种结构为指定对象提供了建立数据交换的环境,也包括结构的指向。
- nIDC就是你的控件ID,rControl控件关联的变量。