BOOL PreTranslateMessage(MSG* pMsg)
{
switch (pMsg->message)
{
case WM_MOUSEWHEEL:
{
POINT pos;
pos.x = GET_X_LPARAM(pMsg->lParam);
pos.y = GET_Y_LPARAM(pMsg->lParam);
CRect Rect;
m_wnd.GetWindowRect(&Rect);
if (Rect.PtInRect(pos))
{
CWnd* pWnd = CWnd::WindowFromPoint(pos);
BOOL bIsParent = FALSE;
CWnd* pParent = pWnd->GetParent();
while (pParent)
{
if (pParent == &m_wnd)
{
bIsParent = TRUE;
break;
}
pParent = pParent->GetParent();
}
if (bIsParent)
{
HWND hWnd = pWnd->GetSafeHwnd();
::SendMessage(hWnd, WM_MOUSEWHEEL, pMsg->wParam, pMsg->lParam);
return TRUE;
}
}
break;
}
}
return CDialogBar::PreTranslateMessage( pMsg );
}
PreTranslateMessage将WM_MOUSEWHEEL消息发送给子窗口
最新推荐文章于 2021-06-24 12:34:12 发布