| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3671 人关注过本帖
标题:非模态对话框是怎样创建并传递消息的啊
只看楼主 加入收藏
myvc
Rank: 2
等 级:论坛游民
威 望:1
帖 子:85
专家分:89
注 册:2009-10-25
结帖率:76.47%
收藏
已结贴  问题点数:10 回复次数:4 
非模态对话框是怎样创建并传递消息的啊
非模态对话框是怎样创建并传递消息的啊,我是初学者,希望高人给予解答,最好举一个小例子,不胜感激
搜索更多相关主题的帖子: 对话框 模态 
2010-04-14 18:01
daisylin
Rank: 2
等 级:论坛游民
帖 子:33
专家分:26
注 册:2009-8-14
收藏
得分:10 
调用CDialog::Create 成员函数用资源中的对话框模板一个非模态对话框

BOOL Create( LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL );

BOOL Create( UINT nIDTemplate, CWnd* pParentWnd = NULL );

如果要求父窗口产生时显示对话框,则要求将对话框模板选用 WS_VISIBLE ,或者调用ShowWindow

CMyDialog* pDialog;

void CMyWnd::OnSomeAction()
{
   //pDialog initialized to NULL in the constructor of CMyWnd class
   pDialog = new CMyDialog();
   //Check if new succeeded and we got a valid pointer to a dialog object
   if(pDialog != NULL)
   {
      BOOL ret = pDialog->Create(IDD_MYDIALOG,this);
      if(!ret)   //Create failed.
         AfxMessageBox("Error creating Dialog");
      pDialog->ShowWindow(SW_SHOW);
   }
   else
      AfxMessageBox("Error Creating Dialog Object");
}
2010-04-14 21:09
myvc
Rank: 2
等 级:论坛游民
威 望:1
帖 子:85
专家分:89
注 册:2009-10-25
收藏
得分:0 
回复 2楼 daisylin
谢谢你的答复,我还有一个问题想请教一下您,就是我想通过非模式对话框向程序传递数据,应该怎么做啊?

比如在模态对话框中我们用
CSetDlg dlg;
if(dlg.DoModal()==IDOK)
{
x=dlg.m_x;//设x为程序中一变量
……
}
在非模式对话框DoModal()函数还可用吗?如果不能用,应用什么?
2010-04-14 22:53
daisylin
Rank: 2
等 级:论坛游民
帖 子:33
专家分:26
注 册:2009-8-14
收藏
得分:0 
当然不能了,DoModal()函数是创建模态对话框并返回创建的结果。

你可以试试用Creat()函数的返回值做判断,如果非模态对话框创建初始化成功则返回非零值,否则返回0.
2010-04-15 10:00
秀痘魔导士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:250
专家分:1150
注 册:2009-12-23
收藏
得分:0 
以下是引用myvc在2010-4-14 22:53:51的发言:

谢谢你的答复,我还有一个问题想请教一下您,就是我想通过非模式对话框向程序传递数据,应该怎么做啊?

比如在模态对话框中我们用
CSetDlg dlg;
if(dlg.DoModal()==IDOK)
{
x=dlg.m_x;//设x为程序中一变量
……
}
在非模式对话框DoModal()函数还可用吗?如果不能用,应用什么?
构造传参,然后赋值
2010-04-15 10:30
快速回复:非模态对话框是怎样创建并传递消息的啊
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030649 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved