基于CFormView的单文档工程,在上面再内嵌一个对话框A(CDialog),在对话框A中某个按钮的响应函数有如下的语句
GetParent()->SendMessage(WM_USER+11, WPARAM(15000), 0);
向父窗口也就是CFormView对象发送信息,但CFormView接收不到该信息,
BOOL CVJEncoderView::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
if (pMsg->message == WM_USER+11)
{
if (pMsg->wParam == 15000)
TRACE("Get it\n");
} return CFormView::PreTranslateMessage(pMsg);
}
但我用spy++查看CFormView对象,发现有记录<00021> 000804DA S message:0x040B [用户定义:WM_USER+11] wParam:00003A98 lParam:00000000
<00022> 000804DA R message:0x040B [用户定义:WM_USER+11] lResult:00000000这到底为什么?

解决方案 »

  1.   

    但我用spy++查看CFormView对象,发现有记录<00021> 000804DA S message:0x040B [用户定义:WM_USER+11] wParam:00003A98 lParam:00000000
    <00022> 000804DA R message:0x040B [用户定义:WM_USER+11] lResult:00000000这到底为什么?
      

  2.   

    这样试试
    ::PostMessage(GetParent()->GetSafeHandle(), WM_USER+11, WPARAM(15000), 0);
      

  3.   

    父窗口:CFormView我的对话框是child属性的,就像按钮一样直接嵌入到CFormView里
      

  4.   

    是不是消息没有进入PreTranslateMessage里,直接进入到WindowProc里了?  回去我测试一下..
      

  5.   

    CFormView应该是包含一个对话框然后才是你的子对话框吧