Windows对话框分为两类:模态对话框和非模态对话框。

模态对话框,当它弹出后,本应用程序其他窗口将不再接受用户输入,只有该对话框响应用户输入,在对它进行相应操作退出后,其他窗口才能继续与用户交互。

非模态对话框,它弹出后,本程序其他窗口仍能响应用户输入。非模态对话框一般用来显示提示信息等。

弹出模态对话框

弹出对话框比较关键的一个函数,就是对话框类的DoModal()函数。CDialog::DoModal()函数的原型为:

virtual INT_PTR DoModal();   

DoModal是一个函数,可以用来显示一个模态对话框。此成员函数用来显示一个模态对话框。其返回值对应于用来关闭对话框的控件的ID。  此函数返回后,Windows响应这个对话框,所有的属性页都会被销毁。要显示一个非模态对话框,请调用Create来代替此函数。

返回值:如果函数成功则返回IDOK或IDCANCEL;否则返回0或-1。IDOK和IDCANCEL都是常量,它表明用户选择的是OK按钮还是Cancel按钮。

调用了它对话框就会弹出,返回值是退出对话框时所点的按钮的ID,比如,我们点了“退出”按钮,那么DoModal返回值为IDCANCEL。

代码:

首先新建一个dialog,取名为TipDlg,并对该对话框添加新类

 void CTestDlg::OnBnClickedBtnAdd()
{
// TODO: 在此添加控件通知处理程序代码、 //////////////////////////////////////////
INT_PTR nRes; //用于保存DoModal函数的返回值 CTipDlg tipDlg; //构造对话框CTipDlg的实例
nRes=tipDlg.DoModal(); //弹出对话框
if(IDCANCEL==nRes) //判断对话框退出后返回值是否为IDCANCEL,如果是证明选择了退出键返回IDCANCEL,则执行return,否则继续向下执行
return;
/*要执行的代码*/
}

非模态对话框的创建:http://www.jizhuomi.com/software/162.html

CDialog7为新建的对划框类

CDialog7 *dlg7=new CDialog7; //创建非模态对话框实例
dlg7->Create(IDD_DIALOG7,this);
dlg7->ShowWindow(SW_SHOW); //显示非模态对话框*/

最新文章

  1. ajax教程
  2. 【转】修改LINUX时间
  3. Java字符串中常见的10个问题
  4. 64位MicrosoftOfficeWord加载EndnoteX7
  5. codevs1842 递归第一次
  6. Http 1.1协议
  7. 在linux终端下打开pdf文件
  8. MVC中Jqgrid的用法
  9. highcharts 柱形图 饼图 加URL或Click事件
  10. HP DL160 Gen9服务器集群部署文档
  11. Web页面布局方式小结
  12. C 语言统计关键字出现次数
  13. IOS-Plist文件存储(1)
  14. Typora最常用快捷键
  15. 浅谈HTTP协议
  16. nmon安装与使用
  17. import logging报错raise notimplementederror 'emit must be implemented ' ^
  18. Spring(二)IOC底层实现原理
  19. JQuery EasyUI学习笔记
  20. 小白学习之Code First(五)

热门文章

  1. IntelliJ IDEA常用统一设置(Linux/Mac/Windows)
  2. 使用SmartQQ实现的智能回复(Web QQ协议)
  3. CNN网络--AlexNet
  4. C/C++中static关键字作用总结 && 指针与引用的比较
  5. win10中显示wpcap.dll丢失的处理方式
  6. SolidEdge如何绘制阵列之后取消掉某一些
  7. linux find 命令查找 复制
  8. 搭建企业内部DNS服务器,docker 部署内部 dnsmasq
  9. Collection接口和Collections类的简单区别和讲解
  10. css设置图片居中、居左、居右