因为是SDI,所以一定有一个CView的派生类充满了MainFrame的Client,所以没有效果。

解决方案 »

  1.   

    BOOL CMainFrame::PreTranslateMessage(MSG* pMsg) 
    {
    if (pMsg->message == WM_LBUTTONDOWN)
    {
    //do something
    }
    return CFrameWnd::PreTranslateMessage(pMsg);
    }
      

  2.   

    lownr(双面):
       在SDI中是有一个CView的派生类充满了MainFrame的Client,但我没有在这个CView的派生类中映射鼠标左键Down(WM_LBUTTONDOWN)这个消息,那样的话,这个CView的派生类不会截获鼠标左键这个消息。这个消息应该被送到CMainFrame类,因为我在它中映射鼠标左键DownWM_LBUTTONDOWN)这个消息。
    就像karma(无为)在上面说得那样,可以在CMainFrame的消息预处理函数(PreTranslateMessage)中截获这个消息,但它为什么之后不调用CMainFrame::OnLButtonDown()这个函数?
    请指教