在单文档程序的doc中,如何获得框架mainframe的HWND m_hWnd呀?目的是想通过::SendMessage(m_hWnd,WM_POPUP_EVE_BAR,0,0);来发送消息给框架函数。
用HWND m_hwnd = AfxGetMainWnd()->GetSafeHwnd();取得句柄,然后用
::SendMessage(m_hWnd,WM_POPUP_EVE_BAR,0,0);发送给框架mainframe,可是mainframe中相应的消息处理函数却收不到消息。在mainframe中的消息处理函数是: ON_MESSAGE(WM_POPUP_EVE_BAR,OnPopUpEveBar)void CMainFrame::OnPopUpEveBar(WPARAM wParam,LPARAM lParam)
{
m_pEvePopBar->OnPopUp();
}
在OnPopUpEveBar中和::SendMessage(m_hWnd,WM_POPUP_EVE_BAR,0,0);处设置了断点,发现程序根本就进入不到OnPopUpEveBar中。是m_hWnd取得不对是码?

解决方案 »

  1.   

    没有问题啊,就是这么得到的。
    你调试以下,用Spy++看看.
      

  2.   

    你实现自定义消息时有问题,请参照下面的文章来处理:
    http://www.csdn.net/Develop/Article/15/15980.shtm
      

  3.   

    将HWND m_hwnd = AfxGetMainWnd()->GetSafeHwnd();改为
    HWND m_hwnd = ((CMainFrame*)AfxGetMainWnd())->GetSafeHwnd();TRY
      

  4.   

    我是在OnNewDocument()中sendmessage的,是不是这时候CMainFrame还没有创建呀?
      

  5.   

    HWND hwnd  = ((CMainWnd*)AfxGetMainWnd())->GetSafeHandle();
      

  6.   

    同  StdAfx(任杰) :
        
         LRESULT XXX(WPARAM wParam, LPARAM lParam)
         {
             .........
             return 0L;
         }     小心为妙,一个都不能少! 要不,谁知会发生什么事呢http://expert.csdn.net/Expert/topic/1389/1389957.xml?temp=.811886
      

  7.   


    提议见 vc_dwj (深蓝)贴 即杀
      

  8.   

    to fangcheng(我总是分太少,回答问题总觉太难) :
    我赞同你的说法。vc_dwj (深蓝) 和 love_vc(诚恳帮助) 应该是同一个人,居然这么明目张胆的倒分。我也不想举报什么的,分数对我来说没什么关系,但你这样做是对帮助你的人的侮辱。love_vc(诚恳帮助) 请好自为知。