zoukankan      html  css  js  c++  java
  • 模态对话框 DoModal的用法 (vs2008)与非模态对话框

    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,并对该对话框添加新类

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

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

    CDialog7为新建的对划框类

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

  • 相关阅读:
    BZOJ 4769: 超级贞鱼 逆序对 + 归并排序
    BZOJ 4897: [Thu Summer Camp2016]成绩单 动态规划
    luogu 4059 [Code+#1]找爸爸 动态规划
    CF718C Sasha and Array 线段树 + 矩阵乘法
    计蒜客 2238 礼物 期望 + 线段树 + 归并
    BZOJ 2157: 旅游 (结构体存变量)
    BZOJ 3786: 星系探索 ETT
    BZOJ 3545: [ONTAK2010]Peaks 启发式合并 + 离线 + Splay
    Spring的几种初始化和销毁方法
    SpringCloud之Zuul高并发情况下接口限流(十二)
  • 原文地址:https://www.cnblogs.com/qiwu1314/p/8421397.html
Copyright © 2011-2022 走看看