我在一个播放器设计中遇到一个问题,右键弹出菜单时,是在主窗口BOOL CXXXDlg::PreTranslateMessage(MSG* pMsg)中响应的,然后视频开始播放之后,这时候再右键的时候,会被子窗口CAAAView截获, 父窗口从而接收不到右键消息。 网上搜了几种方法,不过比较简单的还是下面这种, 直接在子窗口的PreTranslateMessage中对应消息中返回false, 然后就会透传到下一级窗口。当返回值是TRUE(非0)时,消息会被拦截,不会被传递到下一级窗口。
这种比较适合像WM_KEYDOWN, WM_RBUTTON, WM_LBUTON, WM_MOUSE等窗口叠加时候 需要特定窗口接收的场景。