微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 CMainFrame 中处理鼠标点击

如何解决如何在 CMainFrame 中处理鼠标点击

如何检测“空”CMainFrame 鼠标点击?空的意思是一个还没有任何文档/视图的 MDI。

我尝试使用以下方法检测鼠标点击:

   afx_msg void OnLButtonDown(UINT nFlags,CPoint point);  
   BOOL CMainFrame::PreTranslateMessage(MSG* pMsg);

解决方法

MDI 主框架窗口有一个“不可见”的客户端 窗口,它占据了主框架的客户区。使用“普通”类覆盖技术无法访问此窗口,但是,如果该主框架窗口派生自 CMDIFrameWndCMDIFrameWndEx,您可以使用其 m_hWndMDIClient 成员({{1} } 那个不可见的窗口)来子类化它,通过覆盖它的 HWND

我使用 WindowProc 成员变量(在构造时设置为 UpdateWindow)在主框架的 bool 过程的覆盖中执行此操作(实际上是为了在该客户区中绘制)跟踪子类化是否已经完成。

这是一个可能的解决方案(改编自我自己的代码),它可能适用于拦截鼠标点击。 (我对其进行了测试,确实得到了 false 鼠标点击诊断!)

Beep()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。