如何获得对话框的句柄

易铭Frank 2012-07-13 08:18:29
我想获得对话框的句柄,我知道这个:HWND h = ::FindWindow(NULL,L"编辑程序");可以获得,但是,对话框必须要有标题,如果我的对话框没有标题呢,该怎么获得呢?请大侠指教。。。。谢谢了!
...全文
1685 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ArthurKingYs 2015-01-09
  • 打赏
  • 举报
回复
AfxGetMainWnd()-> m_hWnd是主窗口的句柄。
易铭Frank 2012-08-20
  • 打赏
  • 举报
回复
谢谢各位了
angusing 2012-07-13
  • 打赏
  • 举报
回复
你可以设置一个全局的指针变量CDialog *ptr(或者你自己的衍生的对话框类Cxxx *ptr),
然后在你所需要获取的对话框的关联的类的构造函数中写
ptr=this;
之后在你程序第一次自动或手动对对话框操作的时候,ptr就保存了该对话框的指针。
最后ptr->m_hwnd,这个就是你要的对话框的句柄
jiayuxue 2012-07-13
  • 打赏
  • 举报
回复
用SetParent(CWnd *pWnd)函数试试,具体用法可以百度一下
易铭Frank 2012-07-13
  • 打赏
  • 举报
回复
能举个简单的例子吗,我是菜鸟,还没用过对话框的指针,谢谢了!比如对话框Dialog1的类为CDialog1里要获得对话框CDialog2的指针~~
这个娜戒海了 2012-07-13
  • 打赏
  • 举报
回复
你在编辑程序的对话框里面把自己的指针this传给要用的那个类,然后那个类通过该指针的m_hWnd参数获得对话框句柄
XNightSky 2012-07-13
  • 打赏
  • 举报
回复
FindWindow API ,用标题获取或者是 窗口注册类名
FindWindowEx - 或者你知道那个窗口的第几个子窗口(HWND句柄)
易铭Frank 2012-07-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

你想实现什么样的功能,这个“编辑程序”是你自己写的,还是别人的?自己写的话好改
[/Quote]
“编辑程序”是自己写的,是所要获得句柄的对话框的标题
sunxc123 2012-07-13
  • 打赏
  • 举报
回复
首先有那个对话框的指针,然后pDlg->m_hWnd 获得句柄
lang14 2012-07-13
  • 打赏
  • 举报
回复
HWND h = ::FindWindow(类名,NULL)
这个娜戒海了 2012-07-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

试试 GetDlgItem()
[/Quote]

他要的是对话框句柄,不是控件的
daniel4656 2012-07-13
  • 打赏
  • 举报
回复
试试 GetDlgItem()
这个娜戒海了 2012-07-13
  • 打赏
  • 举报
回复
你想实现什么样的功能,这个“编辑程序”是你自己写的,还是别人的?自己写的话好改

15,979

社区成员

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

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