我的程序安装使用了另外的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消息的来龙去脉是什么样的啊,要让两个都响应应该怎么做?
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消息的来龙去脉是什么样的啊,要让两个都响应应该怎么做?
如果你的程序是一个多文档(或者单文档)而且是基于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);
}
这个函数里面进行处理;