MFC子窗口获取子窗口句柄

liu631158765 2015-05-20 05:04:50
假设我现在有三个窗口A,B,C,三个窗口的基类我填的都是CDialog,在A窗口类中我定义个指针CDialog m_dia;
并在A中用m_dia创建两个子窗口B,C,用m_dia->create()和showwindow()显示;B和C窗口的属性我都设置为
无边框,和child属性,
然后问题来了,我想在窗口B的类中向窗口C发送个自定义消息,也就是子窗口向子窗口发消息,
但是C的句柄我怎么都获取不到,
FindWindow();的话得知道标题名,但我的子窗口设置为无边框,属性栏中标题栏变灰设置不了,填类名也找不到
GetDlgItem的话我在B窗口中C还没有创建,我是需要在B中再Create创建一次C??另一个子窗口句柄怎么获取呢?
...全文
583 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
笨笨仔 2015-05-20
  • 打赏
  • 举报
回复
最好的方法是B、C通过A完成控制,当然,如果你真的想让B、C间直接通信也可以,比如:A在创建完成B、C后,对B、C进行初始化,将C、B指针发给窗口作为成员变量保存起来,由此可建立B、C间的通信。以上所的说的通信指自定义消息。
worldy 2015-05-20
  • 打赏
  • 举报
回复
每个窗口变量里都有个成员m_hWnd,直接使用就是了
shenyi0106 2015-05-20
  • 打赏
  • 举报
回复
引用 2 楼 liu631158765 的回复:
我是在父窗口里Create的两个子窗,在父窗口里边当然能找到句柄,我想在其中一个子窗口类中获取另一个子窗口的句柄,这时候在B里不是还没有C吗?
谁的孩子谁管!!!请记住这一点!不然你的关系会理不清的! 别人的孩子犯错误了,你能打么? 你的正确做法是,告诉其父亲,让其父亲来管教它!
洗洗睡去 2015-05-20
  • 打赏
  • 举报
回复
b向父窗口发消息,通过父窗口 来操作c
liu631158765 2015-05-20
  • 打赏
  • 举报
回复
我是在父窗口里Create的两个子窗,在父窗口里边当然能找到句柄,我想在其中一个子窗口类中获取另一个子窗口的句柄,这时候在B里不是还没有C吗?
shenyi0106 2015-05-20
  • 打赏
  • 举报
回复
看来你还不太了解windows的窗口机制,以及MFC中的CWnd代表什么。 你都Create了一个CDialog了,它不就是你的窗口(窗口句柄)么,还纠结怎么找到它?还是把《深入浅出MFC》在看一遍吧

15,980

社区成员

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

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