首先声明:在网上看了很多资料,很多内容也是从别人那里学到的,只是结合自己的使用写下来。
在VS中对话框分两种:模态对话框和非模态对话框。
模态对话框就是一旦我被打开了,就得完全做我的事情,只有把我关了,你才能做其他的事情。
非模态对话框就是你把我打开了,可以去干点别的,什么时候想起我来了,就用用,甚至可以直接把我灭了。
- 不管要哪种对话框,以下两步必须得做:
1、在资源中(或者其他地方)添加一个Dialog资源;
图1. 新建对话框资源
2、右键 在【Add class 】,为你新建的对话框加新建一个类,为什么要添加类呢?因为面向对象编程,后续你要使用这个对话框,总得有个东西代表这个对话框吧!
图2中①处写对话框类的名称,一般以C****,代表类。
②处选择类的基类,我只选过CDialog和CDialogEx,后者是前者的派生,界面更美化了点。
③处世自动产生的两个关于这个类的文件。
图2. 添加对话框类
下一步就是如何调用?如何销毁?
- 对话框的调用。
模态:
CTestDlg d1; d1.DoModal();//推荐使用
两句就可以了,创建显示都自动完成。也可以用CTestDlg *d1=new CTestDlg;d1->DoModal();,但是要显示的在后面添加delete d1.

本文介绍了在VS中模态和非模态对话框的创建和销毁过程。模态对话框打开后需关闭才能进行其他操作,非模态对话框可同时进行其他任务。创建模态对话框推荐使用DoModal(),非模态对话框需通过Create()和ShowWindow()。销毁时,模态对话框通常自动关闭,非模态对话框需重载OnCancel()和PostNcDestroy(),并在其中调用DestroyWindow()。关闭顺序涉及OnClose(), OnDestroy(), OnNcDestroy()和PostNcDestroy()等函数。"
123841946,8695122,使用jadx进行Android反编译,"['Android开发', '逆向工程', '编译工具']

3934

被折叠的 条评论
为什么被折叠?



