一、模态对话框
模态对话框有阻塞功能,打开之后不能操作其他对话框。
1、新建MFC项目
项目名称只等是英文,不能加入数字、下划线和空格。
2、选择基于对话框
3、插入新的对话框
右键Dialog,插入Dialog。
4、给新的对话框重写ID
右键新的对话框,选中属性,修改。
模态为IDD_EXEC,非模态为IDD_SHOW。
5、为模态对话框添加类
右键选中的对话框,添加类。创建后会自动弹出.h的对话框。
6、添加按钮
在主对话框(创建项目就会自动生成),放置按钮(工具栏里拖拽)。
有三种方式为按钮添加事件。
1)点击按钮,右键属性,闪电图标。
2)右键按钮,添加事件处理程序。
3)双击按钮,这个只能添加单机按钮的事件,其他事件如双击按钮需用前两种方法。
双击之后会自动生成如下代码,自己写入最后两行代码即可。
然后引入头文件。
二、非模态对话框
1、为非模态对话框添加类
右键对话框,添加类。
2、双击主窗口种的非模态按钮,添加事件
1)在CCDialogOneDlg.h(打开类视图,双击CCDialogOneDlg打开CCDialogOneDlg.h)种添加成员变量,CDlgShow dlg。
CCDialogOneDlg为创建项目后生成的类。类名为项目名称。
2)在CCDialogOneDlg类中的OnInitDialog函数中添加dlg.Create(IDD_SHOW)。IDD_SHOW为窗口的ID。
dlg.Creat()的第一个形参为窗口的ID,第二个形参有默认值不用写。
创建窗口只能创建一次,多次就会崩掉,因此放到OnInitDialog中。
3)在按钮处理函数(双击按钮产生的函数)中写入 dlg.ShowWindow(SW_SHOWNORMAL)。
dlg.ShowWindow在MFC帮助文档中查找形参使用方法。
ShowWindow的父类为CWnd。在帮助文档中查找得加上作用域。
三、演示
点击模态按钮。
点击非模态按钮。
四、改变和获取按钮文本
1、添加变量,设为私有、设置变量名为m_btn。
2、在双击按钮后生成的代码框架中添加如下代码。
3、演示
五、设置按钮状态
1、在上述代码后加入如下代码即可。实现效果:点击一次就不能再点击。
2、演示