我的消息传递问什么不成功?

fuel2002 2008-08-02 03:40:06
第一次进来,没有分,请见谅。

建立一个document/view类,VIEW使用的formview类型,formview的dialog中有一个按键,想实现的是按一下发送消息给cwinapp,也就是整个工程的app类。(工程名为myapp)

1.自定义消息号:#define WM_MYMSG 1400
2.定义处理函数:afx_msg LRESULT myapp::DELFUN(WPARAM wParam, LPARAM lParam);
3.ON_MESSAGE(WM_MYMSG, DELFUN)
//消息处理函数
4.LRESULT CABC::DealXXXXMessage(WPARAM wParam, LPARAM lParam)
{
AfxMessageBox(“hello!”);
return 0;
}
5.dialog中,按键处理函数为
void CmyappView::On_button()
{
this->PostMessage(WM_MYMSG);
}

没法看到弹出massage框,请教。

...全文
120 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fuel2002 2008-08-02
  • 打赏
  • 举报
回复
看了《深入浅出MFC》,百思不得其解,因为命中函数oncmdtarget有用cache和汇编的部分,短时间根本没法看,困惑啊。
fuel2002 2008-08-02
  • 打赏
  • 举报
回复
明确地说,是调用cformview::OnCmdMsg,可我明明没有给cformview定义处理WM_MYMSG的ON_COMMAND命令啊??
fuel2002 2008-08-02
  • 打赏
  • 举报
回复
我试过WM_COMMAND,同样不响应,我DEBUG了半天,发现程序最后进入了

CWnd::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo)

然后命中退出,可我根本没有在cformview或vframewnd中定义WM_MYMSG的处理函数,应该不是这个问题。我只能再找找。

不过还是谢谢楼上。
schlafenhamster 2008-08-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 Mackz 的回复:]
只有窗口类(从CWnd或其子类继承的类)才有消息响应。CWinApp类是从CCmdTarget,可以响应WM_COMMAND消息,其他消息没用。
[/Quote]
菜牛 2008-08-02
  • 打赏
  • 举报
回复
只有窗口类(从CWnd或其子类继承的类)才有消息响应。CWinApp类是从CCmdTarget,可以响应WM_COMMAND消息,其他消息没用。
fuel2002 2008-08-02
  • 打赏
  • 举报
回复
4.LRESULT CABC::DealXXXXMessage(WPARAM wParam, LPARAM lParam)
{
AfxMessageBox(“hello!”);
return 0;
}
////////////////////////////
是LRESULT Cmyapp::DELFUN(WPARAM wParam, LPARAM lParam)
{
AfxMessageBox(“hello!”);
return 0;
}

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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