第十三节 MFC的一些概念

一、模态对话框和非模态对话框
Windows对话框分为两类:模态对话框和非模态对话框。
模态对话框是这样的对话框,当它弹出后,本应用程序其他窗口将不再接受用户输入,只有该对话框响应用户输入,在对它进行相应操作退出后,其他窗口才能继续与用户交互。
非模态对话框则是,它弹出后,本程序其他窗口仍能响应用户输入。非模态对话框一般用来显示提示信息等。
第十二节添加的就是模态对话框
(1)非模态对话框
1.非模态对话框的模板必须具有Visible风格,否则对话框将不可见;
2.非模态对话框对象是用new操作符在堆中动态创建的,而不是以成员变量的形式嵌入到别的对象中或以局部变量的形式构建在堆栈上。通常应在对话框的拥有者窗口类内声明一个指向对话框类的指针成员变量,通过该指针可访问对话框对象;
3.必须有一个标志表明非模态对话框是否是打开的。这样做的原因是用户有可能在打开一个模态对话框的情况下,又一次选择打开命令。程序根据标志来决定是打开一个新的对话框,还是仅仅把原来打开的对话框激活。通常可以用拥有者窗口中的指向对话框对象的指针作为这种标志,当对话框关闭时,给该指针赋NULL值,以表明对话框对象已不存在了。
4.必须调用CWnd::DestroyWindow来关闭非模态对话框。
(2)模态对话框
1.模态对话框在对话框创建后,挂起外部的消息,只是响应对话框内部的消息,而外部消息则全部"过滤"掉了,直到系统接收到WM_DESTROY或WM_CLOSE后,系统返回控制权给模态对话框创建前的线程,

二、创建对话框
(1)创建一非模态对话框
CMyDlg* pMainWnd = new CMyDlg;
pMainWnd->Create();
(2)创建一模态对话框
CMyDlg dlg;
dlg.Domdal();

三、头文件.h和源文件.cpp

  1. 头文件(.h):
    写类的声明(包括类里面的成员和方法的声明)、函数原型、#define常数等,但一般来说不写出具体的实现。

  2. 源文件(.cpp):
    源文件主要写实现头文件中已经声明的那些函数的具体代码。需要注意的是,开头必须#include一下实现的头文件,以及要用到的头文件。那么当你需要用到自己写的头文件中的类时,只需要#include进来就行了。

四、控件与类
控件是类的一个子集,类可以做控件所做的任何事,而控件却无法完成类所有的功能。

五、开发软件一定要先进行功能设计,最好先进行原型设计

你可能感兴趣的:(第十三节 MFC的一些概念)