MFC 子窗口调用父窗口的发消息函数不成功?

黑暗时代fhp 2017-03-23 04:39:22
如题!
我想在子窗口中,调用父窗口的函数(这个函数里头有个发消息的函数)
比如:
我在子窗口中,调用父窗口函数
CFatherDlg *fatherDlg = ((CFatherDlg *)GetParent());
fatherDlg.fatherFunction;

这个父窗口函数里有个发消息的
CFatherDlg::fatherFunction()
{
……
PostMessage(WM_UPDATE_LOG, (WPARAM)p, 0);
}

而这个消息,在父窗口中,会去调用到对应的处理函数
ON_MESSAGE(WM_UPDATE_LOG, &CFatherDlg::OnUpdateLog)

现在情况是,会走到fatherFunction,但是,不会走到OnUpdateLog。
我不知道我问题出在哪,求教各位大神!
...全文
206 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
黑暗时代fhp 2017-03-28
  • 打赏
  • 举报
回复
感谢各位的帮忙,根据qq_22675143所提示的,问题我已解决!
Eleven 2017-03-24
  • 打赏
  • 举报
回复
你需要确定你的父窗口是CFatherDlg类关联的窗口
我曾有一个梦 2017-03-24
  • 打赏
  • 举报
回复
提供个我自己用的方法:全局 #define WM_MAINDLG WM_USER+37 HWND g_MainDlg; 主对话框 g_MainDlg = this->m_hWnd; ON_MESSAGE(WM_MAINDLG, &CXXX::OnMessageMaindlg); ps:自定义消息根据向导不容易出错 子对话框中发送消息:PostMessage(g_MainDlg,WM_MAINDlg,1,0); 主对话框类:OnMessageMaindlg会响应消息.
黑暗时代fhp 2017-03-24
  • 打赏
  • 举报
回复
引用 5 楼 qq_22675143 的回复:
我不太熟悉MFC,但感觉要传个父窗口句柄才行的吧
我有在子窗口中,CFatherDlg *fatherDlg = ((CFatherDlg *)GetParent()); 然后再用父窗口句柄去调用父窗口函数 fatherDlg->fatherFunction()的 只是搞不懂,明明都走到PostMessage,但是,却没走到消息响应函数。 ps:如果在父窗口中,直接调用fatherFuntion()函数,就会正常走到消息响应函数
Anow_D 2017-03-24
  • 打赏
  • 举报
回复
我不太熟悉MFC,但感觉要传个父窗口句柄才行的吧
黑暗时代fhp 2017-03-24
  • 打赏
  • 举报
回复
引用 2 楼 zgl7903 的回复:
PostMessage之前设置个断点,看运行到这里了么? 是不是消息环被阻塞了? 用 SendMessage试试看
通过调试,确实有走到PostMessage那里,就是不懂后面怎么回事,不会走到发消息的处理函数
黑暗时代fhp 2017-03-24
  • 打赏
  • 举报
回复
引用 1 楼 shiyanzi 的回复:
你直接发消息给父窗口执行这个函数,不就行了。
主要是,我希望在主窗口中也可以使用啊! 也希望在主窗口中,调用fatherFunction()的时候,能发消息,然后执行消息对应的函数!
zgl7903 2017-03-23
  • 打赏
  • 举报
回复
PostMessage之前设置个断点,看运行到这里了么?
是不是消息环被阻塞了? 用 SendMessage试试看
  • 打赏
  • 举报
回复
你直接发消息给父窗口执行这个函数,不就行了。

15,978

社区成员

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

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