我的程序安装使用了另外的C++类,于是就出现了奇怪的问题,每次鼠标点击时不响应我主程序中的函数:
void CMapEDesktopView::OnLButtonDown(UINT nFlags, CPoint point) 
{
   ...
  CView::OnLButtonDown(nFlags, point);
}
却总是响应另外加入那个类的函数,那是个点击地图所响应的函数(class CMUIMap : public CWnd):
void CMUIMap::OnLButtonDown(UINT nFlags, CPoint point)
{...
  CWnd::OnLButtonDown(nFlags, point);
}
请教关于OnLButtonDown消息的来龙去脉是什么样的啊,要让两个都响应应该怎么做?

解决方案 »

  1.   

    一般不会两个都激发,你的鼠标点击在哪个控件上,就响应控件的OnLButtonDown
    如果你的程序是一个多文档(或者单文档)而且是基于FormView的话,那么如果在FormView上面有控件的话,
    void CMapEDesktopView::OnLButtonDown(UINT nFlags, CPoint point) 
    {
       ...
      CView::OnLButtonDown(nFlags, point);
    }
    那么当鼠标在控件上点击的时候上面的事件不会被触发。
    楼主可以在程序的
    BOOL CTestDlg::PreTranslateMessage(MSG* pMsg) 
    {
    if (pMsg->message == WM_LBUTTONDOWN)
    {
    //...
    }
             else if (pMsg->message == WM_LBUTTONUP)
             {
                      //...
             }

    return CDialog::PreTranslateMessage(pMsg);
    }
    这个函数里面进行处理;