非模态对话框 postmessage() 失败

lsldragon 2014-03-03 09:56:43
请教大侠:
基于对话框程序中,定义了两个类,一个是CUDPM,是一个自定义类,无基类,另一个是CFuZhu类,关联一个非模态对话框。分别在两个类中向主程序发送消息,在两个类中都定义了一个函数取得主窗口句柄
SetMainWnd(HWND inwnd)
{
mMainWnd=inwnd;
}
在主程序OnInitDialog中分别调用取得主窗口句柄。
问题是在CUDPM中发送消息成功,在非模态对话框中,发送消息失败,用getlasterror()错误1400,说是无效窗口句柄,为什么在CUDPM中发送消息句柄有效,在这儿会无效?谢谢!
...全文
181 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lsldragon 2014-03-04
  • 打赏
  • 举报
回复
感谢各位,原由本人的粗心,导致一系列问题,现已解决,再次感谢。
zhouxiaofeng1021 2014-03-03
  • 打赏
  • 举报
回复
主对话框指针设置成全局的也行
zhouxiaofeng1021 2014-03-03
  • 打赏
  • 举报
回复
非模态对话框的消息循环 :非模态对话框和父窗口共享当前线程的消息循环 还有你设置了父窗口没? 你的窗口属性是不是子窗口? 可以试着在发送消息前这样做: CWnd* pParent = GetParent(); ASSERT(pParent); pParent->PostMessage(...); //做些事
lsldragon 2014-03-03
  • 打赏
  • 举报
回复
我想直接调用函数,在CFuZhu类的头文件里包含文件后直接class 主对话框类,然后声明一个主对话框类的指针变量,在程序中调用用时,智能提示显示,没有可用成员,哪儿有问题?谢谢
lsldragon 2014-03-03
  • 打赏
  • 举报
回复
谢谢版主,消息是发成功了,但是消息处理函数不响应,映射那些都有
枫墨于心 2014-03-03
  • 打赏
  • 举报
回复
AfxGetApp()->GetMainWnd(),试试用这个取得主窗口句柄,发送消息,看能不能成功
Eleven 2014-03-03
  • 打赏
  • 举报
回复
直接AfxGetMainWnd()->PostMessage(...);发送消息到主窗口
lsldragon 2014-03-03
  • 打赏
  • 举报
回复
谢谢,那应该是什么问题?找了好几天都找不到问题所在呀。
向立天 2014-03-03
  • 打赏
  • 举报
回复
不应该出现这种情况啊

15,978

社区成员

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

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