目录
1、模态和非模态对话框:
(1)、对话框的创建
(2)、更改默认的对话框名称
(3)、创建模态对话框
1)、创建按钮跳转的界面
2)、在跳转的窗口添加类
3)、触发我们添加的类实现跳转
4)、事件触发消息,消息响应函数处理消息
(4)、创建非模态对话框
1)、添加非模态对话框类
2)、将事件和消息处理关联
(5)、运行UI结果
2、总结模态对话框和非模态对话框:
1、模态和非模态对话框:
(1)、对话框的创建
(2)、更改默认的对话框名称
ctrl A+delete全部删除对话框上面的默认控件。
ctrl +art+x工具箱快捷键
(3)、创建模态对话框
1)、创建按钮跳转的界面
非模态界面创建过程与模态界面创建类似。
2)、在跳转的窗口添加类
3)、触发我们添加的类实现跳转
创建事件方法1:
创建事件方法2:
创建事件方法3(最常用):
4)、事件触发消息,消息响应函数处理消息
事件的发生传递给Windows,Windows会发送消息给窗口对象
此时的模态对话框的类中就有消息响应函数来处理该消息
(4)、创建非模态对话框
1)、添加非模态对话框类
这个类中包含消息响应函数来处理消息
2)、将事件和消息处理关联
引入消息处理函数的类,方便处理消息
调用处理信息的函数
由于模态对话框由阻塞作用,在局部函数结束也不会释放,但是非模态对话框一闪而过,是因为局部函数结束会释放,所以我们要更改弹出对话框的位置,把他设置为成员函数
注释掉局部函数中的成员,否则就近原则还是当作局部函数成员。
当我们点击非模态对话框创建第二次会报错,由于窗口创建只能创建一次
我们在对话框类的入口函数处加入创建窗口,只会创建一次
(5)、运行UI结果
2、总结模态对话框和非模态对话框:
1、模态对话框:只能处理当前模态对话框的窗口,由于是阻塞所以并不会一闪而过。
2、非模态对话框:可以处理其他对话框窗口,由于非阻塞,局部函数结束释放,一闪而过。
3、按钮名称改变caption,或者点击直接修改,点击事件可以直接双击,其他事件右键属性查找添加
4、先插入窗口,然后添加类
5、模态窗口创建 CDlogExec dlg; dlg.DoModal();
6、非模态创建CDlogShow dlg写到.h中做成员; dlg.Create()写到初始化中也就是框架类入口函数
dlg.showWindow();显示对话框。