在wxMDIParentFrame中处理EVT_MOTION
Handle EVT_MOTION in wxMDIParentFrame
从类派生的主父帧类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 公开的。
简而言之,这是不支持的,也不太可能得到支持。