如何获得一个对话框的句柄?

Mafish 2004-06-30 04:19:02
...全文
2616 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
sohou 2004-06-30
  • 打赏
  • 举报
回复
CSDN - 技术社区 - VC/MFC 界面问题
回复 | 推荐 | 收藏 | 专题 | 公告 | 管理 | 保存 | 关闭窗口



主  题: 如何获得一个对话框的句柄?
作  者: Mafish (hehe)
等  级:
信 誉 值: 100
所属社区: VC/MFC 界面
问题点数: 50
回复次数: 18
发表时间: 2004-06-30 16:19:05



一段代码A中间,创建了一个对话框,用于显示进度。
然后在A中间调用过程B,在B中间也要对进度对话框进行处理。
问题是:在B中如何获得这个对话框的句柄,也就是说,如何对对话框进行处理?
我的解决办法是:
在A中间设对话框为全局变量,然后在B中用extern来引用。
好象这个办法行不通。
编译不能通过,大虾们帮帮忙啊!!


— 人才招聘 —

上海科驌数字科技...
珠海市新华通电脑...
北京迈特安技术发...
China Netwave In...
大连大有吴涛易语...
北京佳诚无限科技...
迪比特(北京)全...
北京追月软件科技...
上海卡通影视(上海...
TOM互联网事业集团...
格林威尔科技发展...

— 培训信息 —

中国四达独家授权...
达洋行教育招生中...
中国国际工程和材...
中商集团经济合作...
北京康飞理想科技...
首都师大出国留学...







回复人: he_zhidan(何志丹:风云伐日) ( ) 信誉:130

============
你说你都四星了还抢这分干啥啊
sohou 2004-06-30
  • 打赏
  • 举报
回复
你回去看书吧,不要在这浪费时间了
MagiSu 2004-06-30
  • 打赏
  • 举报
回复
longlong的方法太可怕了吧。
我的方法this->m_hWnd
返回对话框的句柄。
longlong1129 2004-06-30
  • 打赏
  • 举报
回复
HWND hwnd = FindWindow(类名,标题名);
返回的hwnd 就是你需要的对话框的句柄.

Mafish 2004-06-30
  • 打赏
  • 举报
回复
回killer,我试过了,还是报相同的错误
error C2819: type 'CWzdDialog' does not have an overloaded member 'operator ->'
Mafish 2004-06-30
  • 打赏
  • 举报
回复
回rin,我试过了,还是不行。
ringerxyz 2004-06-30
  • 打赏
  • 举报
回复
CWzdDialog pDlg;
pDlg.m_Progress.SetPos();
试试这个
Mafish 2004-06-30
  • 打赏
  • 举报
回复
回rin,我是在B中有pDlg->m_Progress.SetPos()的语句,回报这样的错
Mafish 2004-06-30
  • 打赏
  • 举报
回复
我前面已经说了啊,
A中创建对话框,无模式,然后A调用B,在B中间要对该话框操作。
问题是,不知道如何在B中得到这个对话框的句柄。
ringerxyz 2004-06-30
  • 打赏
  • 举报
回复
error C2819: type 'CWzdDialog' does not have an overloaded member 'operator ->'
-------------
你把pDlg当指针了?
lixiaosan 2004-06-30
  • 打赏
  • 举报
回复
请说清楚A,B已经进度对话框的关系,以及是什么对话框,无模式,模式,谢谢!
Mafish 2004-06-30
  • 打赏
  • 举报
回复
我的办法是:
在代码A的文件头定义对话:CwzdDialog pDlg;
然后在B中要引用之前:extern CWzddialog pDlg;
然后再对pDlg进行操作。
但是这样编译无法通过,而且很奇怪。
error C2819: type 'CWzdDialog' does not have an overloaded member 'operator ->'
Mafish 2004-06-30
  • 打赏
  • 举报
回复
我用的是无模式的对话框。
lixiaosan 2004-06-30
  • 打赏
  • 举报
回复
贴出代码先
Mafish 2004-06-30
  • 打赏
  • 举报
回复
zhidan看看是这样的么?
CWzdDialog pDlg;
pDlg.GetSafeWhnd();

可是会报错啊,
error C2039: 'GetSafeWhnd' : is not a member of 'CWzdDialog'
ringerxyz 2004-06-30
  • 打赏
  • 举报
回复
你的办法应该是可行的,不知你的代码是怎么写的,
xjkiller 2004-06-30
  • 打赏
  • 举报
回复
把对话框的句柄当参数传递给B咯!
gufengduyu 2004-06-30
  • 打赏
  • 举报
回复
用extern来引用应该可以呀,你在好好检查一下代码
  • 打赏
  • 举报
回复
你的对话框用无模式的
Create = > showWindow
  • 打赏
  • 举报
回复
CDialog dlg;
得句柄
dlg.GetSafeHwnd();
----
CWnd::GetSafeHwnd

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧