您的位置:首页 > 编程语言

MFC原理简介,新手看懂MFC代码

2017-07-23 21:30 225 查看
在编程时程序员会看到一个以工程名为类名的类创建的名为 theAPP 的对象,这个对象就是我们要写的程序。(该类是 CWinApp的派生类)

上面提到的以工程名为类名的类有一个成员函数,其函数原型为

BOOL InitInstance()


该函数就是我们写程序体的地方,在这个函数中写一个MessageBox函数,那么你按F5时就会弹出一个消息框

如何让自己写的程序弹出一个对话框呢?

首先,需要添加对话框资源

其次需要在上面提到的InitInstance()函数中写淡出对话框的代码

使用CDialogEx创建一个对话框对象(参数为对话框ID)并调用DoModal成员函数,即可调用对话框

CDialogEx dlg(对话框ID);
dlg.DoModal();


使用派生类时不需要传递参数,因为这个派生类的构造函数会自动向基类送参数

CDialog dlg();        //CDialog是CDialogEx的派生类
dlg.DoModal();


基于对话框的MFC程序的构架一般是两个类,一个类是上面提到的会生成 theAPP 对象的类,另一个是写主对话框中的内容的类

第二个类中需要编写消息处理函数,所谓消息处理函数举个例子就是,你点一下对话框中的确定按钮,然后程序实现什么功能

简单来说,一个消息ID对应一个消息处理函数,就像这样:

ON_BN_CLICKED(IDOK, &CMFC应用Dlg::OnBnClickedOk()


IDOK
这个消息对应
OnBnClickedOk()
函数

在VS的类向导中可以看到所有以WM_为前缀的消息

也有些函数没有对应的消息ID,因为与这些函数对应的消息是唯一的,无需使用消息ID来区分

总结一下

MFC的组成:

- 必须有一个CWinApp的派生类;

- 必须用派生类在全局定义一个对象theApp;

- 在派生类中必须重写InitInstance虚函数;

- MFC程序就用CWinApp派生类中的InitInstance虚函数作为主函数;

MFC对话框程序的消息处理(消息映射机制)

- 为一个对话框模板建立一个与之关联的CDialog或CDialogEx派生类;

- 在需要启动对话框用派生类定义一个对象,在用对象调用DoModal成
4000
员函数;

- MFC如果要处理一个消息,只要打开类向导,选择在下拉中这个对话框类;

- 在消息列表中就可以选择你需要的消息,双击即可建立消息映射函数;

- 消息映射函数就是:一个消息(和一个窗口)对应一个函数的地址

参考资料:

吕鑫MFC教程
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: