七、模态/非模态对话框
7.1 将对话框Dialog和类关联起来
// 对话框数据
#ifdef AFX_DESIGN_TIME
enum { IDD = IDD_EXEC };
#endif
// 对话框数据
#ifdef AFX_DESIGN_TIME
enum { IDD = IDD_SHOW };
#endif
7.2 为对话框Dialog中的按钮添加事件
方式1:按钮—》右键属性—》添加事件
方式2:按钮—》右键添加事件处理程序
方式3:直接双击该按钮(推荐!)
7.3 模态对话框创建
//弹出模态对话框 -- 具有阻塞的功能(一直会显示)
CDlgExc dlg;
dlg.DoModal();
7.4 非模态对话框的创建
方式1:new出来,在堆中(不推荐)
方式2:
1.CDlgShow dlg;扔到01 CDialogDlg.h文件中类的私有数据成员中,并在此头文件中添加CDlgShow类的头文件#include "DlgShow.h"。
2.创建窗口只能创建一次,多次就会崩掉dlg.Create(IDD_SHOW);所以放到类的构造函数可以保证,只创建一次,但是这种方式—》不推荐。推荐dlg.Create(IDD_SHOW)放到OnInitDialog()函数中:
// TODO: 在此添加额外的初始化代码
dlg.Create(IDD_SHOW); //创建窗口只能创建一次,多次就会崩掉
3. 显示 dlg.ShowWindow(SW_SHOWNORMAL);