对话框是一种特殊类型的窗口,绝大多数Windows程序都通过对话框与用户进行交互。在Visual C++中,对话框既可以单独组成一个简单的应用程序,又可以成为文档/视图结构程序的资源。
对话框应用程序框架介绍
资源视图
在 MFC中,与用户进行交互的对话框界面被认为是一种资源。展开“Dialog”,可以看到有一个ID为IDD_ DIALOG _DIALOG(中间部分(DIALOG)与项目名称相同)的资源,对应中间的对话框设计界面。
类视图
在类视图中,可以看到生成了3 个类:CAboutDlg、CDialogApp和CDialogDlg。
- CAboutDlg:对应生成的版本信息对话框。
- CDialogApp:应用程序类,从 CWinApp 继承过来,封装了初始化、运行、终止该程序的代码。
- CDialogDlg:对话框类,从CdialogEx继承过来的,在程序运行时看到的对话框就是它的一个具体对象。
- DoDataExchange函数:该函数主要完成对话框数据的交换和校验。
- OnInitDialog函数:相当于对对话框进行初始化处理。
设计界面和工具箱
模态对话框
当模态对话框显示时,程序会暂停执行,直到关闭这个模态对话框之后,才能执行程序中的其他任务。
模态窗口创建
CDlgExec dlg + dlg.DoModal()
非模态对话框
当非模态对话框显示时,运行转而执行程序中的其他任务,而不用关闭这个对话框。
非模态创建(不过这个比较麻烦 创建成员需要在.h类中/new一个变量(不过目前不会))
- CDlgShow dlg 写到.h做成员
- dlg.Create 写到初始化 oninitDialog 保证只创建一次
- dlg.showWindow()
其他 :
修改按钮上面的内容
- 点击属性修改内容
- 点击直接输入内容
触发事件三大方法:
- 右侧属性 闪电图标
- 右键按钮 添加事件处理程序
- 双击按钮(不过只是点击触发事件)
插入窗口:
- 点击需要插入的主窗口+右键+添加类