前些天,根据vs2010之MFC入门到精通文档,跟着写了下一到十六节的一个程序。
下面是我在写的过程中觉得需要自己注意的:
一、MFC消息映射机制
一个消息与消息处理函数一一对应的消息映射表,以及消息处理函数的声明和实现等。
消息映射表:
如下所示:
BEGIN_MESSAGE_MAP(CAdditionDlg, CDialogEx)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_ADD_BUTTON, &CAdditionDlg::OnBnClickedAddButton)
ON_BN_CLICKED(IDC_INSTRUCT_BUTTON, &CAdditionDlg::OnBnClickedInstructButton)
END_MESSAGE_MAP()
在BEGIN_MESSAGE_MAP与END_MESSAGE_MAP之间的内容也可称之为消息映射入口项,一般在其头文件中会添加一个宏调用:DECLARE_MESSAGE_MAP.
添加消息处理函数包括三个步骤:
1、在类定义中加入消息处理函数的函数声明,注意要以afx_msg打头。
// 生成的消息映射函数
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void OnBnClickedAddButton();
2、 在类的消息映射表中添加该消息的消息映射入口项。
BEGIN_MESSAGE_MAP(CAdditionDlg, CDialogEx)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_ADD_BUTTON, &CAdditionDlg::OnBnClickedAddButton)
ON_BN_CLICKED(IDC_INSTRUCT_BUTTON, &CAdditionDlg::OnBnClickedInstructButton)
END_MESSAGE_MAP()
3、 在类实现中添加消息处理函数的函数实现。
void CAdditionDlg::OnBnClickedAddButton()
这里注意下自定义消息的定义;
二、添加控件变量(这里控件为Edit control)
1.在编辑框上点右键,在右键菜单中选择“Add Variable”。弹出添加成员变量的向导对话框。