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); //显示非模态对话框*/

  • 相关阅读:
    pfofinet和S7
    A1010 Radix [二分/******]
    A1005 Spell It Right
    最大回文子串长度 [dp]
    HDU 1159 Common Subsequence [最长公共子序列]
    1045 Favorite Color Stripe [动态规划/最长不下降子序列]
    1007 Maximum Subsequence Sum [动态规划]
    数塔问题(递归/递推)
    hdu 畅通工程 [Kruskal/Prime]
    1087 All Roads Lead to Rome [dj]
  • 原文地址:https://www.cnblogs.com/qiwu1314/p/8421397.html
Copyright © 2011-2022 走看看