MFC学习笔记/孙鑫VC++深入详解学习笔记

第七章 对话框(一)

模态(Modal)窗口和非模态(Modeless)窗口的创建(基于VS2010)

1创建一个MFC单文档文件;
2在资源视图:右键Mybole->添加->添加资源->Dialog->一个对话框IDD_DIALOG1;
MFC学习笔记/孙鑫VC++深入详解学习笔记
3添加IDD_DIALOG1资源成功,如果想对资源进行操作,在MFC中是通过一个类来完成的,因此我们需要新建一个类来对新建的对话框资源相关联。在右方的对话框上右键,添加类,添加一个类型为CTestDlg的类,其基类为CDialog;完成CTestDlg类和IDD_DIALOG1对话框资源的关联。
MFC学习笔记/孙鑫VC++深入详解学习笔记
4接下来,如果希望在程序中能够显示这个对话框,就像点击帮助按钮会出现帮助对话框一样。首先在程序中增加一个菜单项,此处我们将其命名为“对话框”,并将其ID改为IDM_DIALOG。值得注意的是要将其POPUP值改为False。然后右键对话框菜单项,点击添加事件处理程序,跳转到事件处理程序。
MFC学习笔记/孙鑫VC++深入详解学习笔记
MFC学习笔记/孙鑫VC++深入详解学习笔记
MFC学习笔记/孙鑫VC++深入详解学习笔记MFC学习笔记/孙鑫VC++深入详解学习笔记消息类型是COMMAND,让视类捕捉这个新增【对话框】菜单项命令相应。
MFC学习笔记/孙鑫VC++深入详解学习笔记上述代码分别实现了模态对话框的创建和非模态对话框的创建,模态对话框的创建首先定义一个对话框对话框对象dlg,然后调用DoModal()函数产生一个模态对话框。注意,必须在视类源文件中包含CTestDlg.h文件和Resource.h文件,且要增加在#include "stdafx.h"之后,不然会跳过添加的头文件。
MFC学习笔记/孙鑫VC++深入详解学习笔记
创建非模态对话框,注意它不能是局部变量。当点击非模态对话框的OnOK按纽时,它并没有关闭,而是隐藏了。需要调用destroyWindow().
创建非模态比较麻烦,一般可以创建模态对话框。

相关文章: