| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1577 人关注过本帖
标题:关于调用对话框求助
只看楼主 加入收藏
dragonfly
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:1024
专家分:0
注 册:2006-3-20
收藏
 问题点数:0 回复次数:8 
关于调用对话框求助

别人提供的程序其中有一段
。。。。
#include "CtrlCCD.h"
CCtrlCCD* CtrlDlg=NULL;
void CUsbCCDDlg::OnCtrlCCD()
{
if(CtrlDlg && CtrlDlg->IsWindowVisible()) return ;
CtrlDlg=new CCtrlCCD(this);
return ;
}
。。。。
这是在主窗体源文件里的一段,按一个按钮执行跳出对话框,CCtrlCCD是另一个基于对话框的类
我不明白他是怎么调用的?怎么没有domodal之类的语句?
另外我想在对话框调用后传递一个值回来,都不知道怎么下手!
向高手请教!

搜索更多相关主题的帖子: 对话框 CtrlDlg CCtrlCCD return 
2006-04-20 15:25
maoguoqing
Rank: 6Rank: 6
来 自:重庆
等 级:贵宾
威 望:28
帖 子:2980
专家分:19
注 册:2005-12-5
收藏
得分:0 
CtrlDlg=new CCtrlCCD(this);
这句就进行了实例化,即创建了一个CCtrlCCD的对话框,如果你没见到
显示该对话框之类的语句,那么CCtrlCCD的构造函数就一定对对话框的
显示进行了封装,你可以到它里面去看一看。
请问你想传递什么值回来,如果是地址那就直接是CtrlDlg就可以,其他
的值话,你可以在CCtrlCCD中添加一个成员变量,保存这个返回值。

天行健,君子以自强不息!!QQ:68660681
2006-04-20 17:29
dragonfly
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:1024
专家分:0
注 册:2006-3-20
收藏
得分:0 

CCtrlCCD::CCtrlCCD(CWnd* pParent /*=NULL*/)
: CDialog(CCtrlCCD::IDD, pParent)
{
//{{AFX_DATA_INIT(CCtrlCCD)
m_bMode = FALSE;
m_nTime = 0;
m_TimeInfo = _T("");
m_TimeSizeInfo = _T("");
m_nGain = 0;
m_GainInfo = _T("");
m_nStand = 0;
m_StandInfo = _T("");
m_nOffsetCH1 = 0;
//}}AFX_DATA_INIT

Create(IDD, pParent);
}

您是指红字的部分吗?

我是想在弹出的窗口中设置一个Int型变量,在返回后得到这个值!

int ReturnData;
ReturnData =CtrlDlg->IntData;
上面这句我应该放到哪里?

[此贴子已经被作者于2006-4-21 16:22:18编辑过]


2006-04-21 16:21
maoguoqing
Rank: 6Rank: 6
来 自:重庆
等 级:贵宾
威 望:28
帖 子:2980
专家分:19
注 册:2005-12-5
收藏
得分:0 

CDialog( UINT nIDTemplate, CWnd* pParentWnd = NULL );

To construct a modeless dialog box, use the protected form of the CDialog constructor. The constructor is protected because you must derive your own dialog-box class to implement a modeless dialog box. Construction of a modeless dialog box is a two-step process. First call the constructor; then call the Create member function to create a resource-based dialog box, or call CreateIndirect to create the dialog box from a template in memory.

你可以将ReturnDate设为CUsbCCDDlg的成员变量,将ReturnData =CtrlDlg->IntData;房在窗口显示之后


天行健,君子以自强不息!!QQ:68660681
2006-04-22 12:18
myajax95
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:30
帖 子:2978
专家分:0
注 册:2006-3-5
收藏
得分:0 
这样出来的是modeless的dialog box了。

http://myajax95./
2006-04-22 13:30
dragonfly
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:1024
专家分:0
注 册:2006-3-20
收藏
得分:0 
多谢各位,先试试再说!

2006-04-25 08:38
dragonfly
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:1024
专家分:0
注 册:2006-3-20
收藏
得分:0 
modeless我不懂,我是用传址的方法搞定的:

CtrlDlg=new CCtrlCCD(this,&ReturnData);
后面的不用再说了,我想大家都能看懂了!

2006-04-27 08:45
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 
modeless是非模态对话框,domodal是模态对话框,两者的区别是显示非模太对话框的时候,主框架可以获得使用焦点, 在显示模态对话框的时候,主框架不能获得焦点。

c++/C + 汇编 = 天下无敌
2006-04-27 11:18
dragonfly
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:1024
专家分:0
注 册:2006-3-20
收藏
得分:0 
谢谢热情依然斑竹!
我明白了,的确我在运行程序的时候,那个对话框显示时,依然可以操作主窗体!

2006-04-28 09:00
快速回复:关于调用对话框求助
数据加载中...
 
   



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

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