创建有模式对话框

88以后的以后88

88以后的以后88

2016-02-19 12:19

下面是个超简单的创建有模式对话框教程,图老师小编精心挑选推荐,大家行行好,多给几个赞吧,小编吐血跪求~

使用有模式对话框时在对话框弹出后调用函数不会立即返回,而是等到对话框销毁后才会返回(请注意在对话框弹出后其他窗口的消息依然会被传递)。所以在使用对话框时其他窗口都不能接收用户输入。创建有模式对话框的方法是调用CDialog::DoModal()。下面的代码演示了这种用法:

CYourView::OnOpenDlg()

{

         CYourDlg dlg;

         int iRet=dlg.DoModal();

}

CDialog::DoModal()的返回值为IDOK,IDCANCEL。表明操作者在对话框上选择“确认”或是“取消”。由于在对话框销毁前DoModal不会返回,所以可以使用局部变量来引用对象。在退出函数体后对象同时也会被销毁。而对于无模式对话框则不能这样使用,下节5.3 创建无模式对话框中会详细讲解。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

你需要根据DoModal()的返回值来决定你下一步的动作,而得到返回值也是使用有模式对话框的一个很大原因。

使用有模式对话框需要注意一些问题,比如说不要在一些反复出现的事件处理过程中生成有模式对话框,比如说在定时器中产生有模式对话框,因为在上一个对话框还未退出时,定时器消息又会引起下一个对话框的弹出。

同样的在你的对话框类中为了向调用者返回不同的值可以调用CDialog::OnOK()或是CDialog::OnCancel()以返回IDOK或IDCANCEL,如果你希望返回其他的值,你需要调用
CDialog::EndDialog( int nResult );其中nResult会作为DoModal()调用的返回值。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

下面的代码演示了如何使用自己的函数来退出对话框:

void CMy52_s1View::OnLButtonDown(UINT nFlags, CPoint point)

{//创建对话框并得到返回值

         CView::OnLButtonDown(nFlags, point);

         CTestDlg dlg;

         int iRet=dlg.DoModal();

         CString szOut;

         szOut.Format("return value %d",iRet);

         AfxMessageBox(szOut);

}

//重载OnOK,OnCancel

void CTestDlg::OnOK()

{//什么也不做

}

void CTestDlg::OnCancel()

{//什么也不做

}

//在对话框中对三个按钮消息进行映射

void CTestDlg::OnExit1()

{

展开更多 50%)
分享

猜你喜欢

创建有模式对话框

编程语言 网络编程
创建有模式对话框

创建无模式对话框

编程语言 网络编程
创建无模式对话框

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

无模式对话框的创建分析

编程语言 网络编程
无模式对话框的创建分析

无模式对话框的创建与使用

C语言教程 C语言函数
无模式对话框的创建与使用

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

director使用mui xtra创建对话框

设计软件 平面设计软件 广告设计软件
director使用mui xtra创建对话框

关于对话框

编程语言 网络编程
关于对话框

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

使用Eclipse3.01 + MinGW3.1配置标准C/C++开发环境详解

使用Eclipse3.01 + MinGW3.1配置标准C/C++开发环境详解

Button

Button
下拉加载更多内容 ↓