在wxMDIParentFrame中处理EVT_MOTION

Handle EVT_MOTION in wxMDIParentFrame

本文关键字:MOTION EVT 处理 wxMDIParentFrame      更新时间:2023-10-16

从类派生的主父帧类myMainFrame似乎wxMDIParentFrame不处理鼠标事件。使用示例 MDI 应用程序可以轻松重现问题。

BEGIN_EVENT_TABLE(myMainFrame,wxMDIParentFrame)
EVT_MOTION(myMainFrame::OnMouseMove)
END_EVENT_TABLE()
void myMainFrame::OnMouseMove(wxMouseEvent& event)
{
//...
}

我打电话给

Connect(0, wxEVT_MOTION, (wxObjectEventFunction) (wxEventFunction) (wxMouseEventFunction) OnMouseMove);

来自myMainFrame构造函数,但这并不能解决问题。

请指教。

您将无法从父 MDI 帧接收鼠标事件,因为它完全被其他窗口覆盖。在wxGTK中,它基本上是一个wxNotebook,子框架是它的页面。在 wxMSW 中,它是一个真实的帧,但它包含 Windows 所谓的"客户端窗口",而 Windows 又包含 MDI 子项,因此获取所有事件的是这个窗口,而不是由 wxWidgets 公开的。

简而言之,这是不支持的,也不太可能得到支持。