User interface wxToolBar更改设备坐标
我正在使用鼠标在MDIChildFrame的客户区绘制2D形状。最近,我在框架中添加了一个wxToolBar,当我现在在客户端区域上绘制一个形状时,这些点似乎随着工具栏的大小而改变。想象一下,我用鼠标点击(100100)并画一条线到(150150);但是,该行出现在(75,75)到(125125)之间的某个位置。顺便说一下,wxMouseEvent GetPosition();向我报告(100100) 删除工具栏解决了这个问题,但是,我想保留工具栏以便于选择工具 我使用代码:User interface wxToolBar更改设备坐标,user-interface,wxwidgets,User Interface,Wxwidgets,我正在使用鼠标在MDIChildFrame的客户区绘制2D形状。最近,我在框架中添加了一个wxToolBar,当我现在在客户端区域上绘制一个形状时,这些点似乎随着工具栏的大小而改变。想象一下,我用鼠标点击(100100)并画一条线到(150150);但是,该行出现在(75,75)到(125125)之间的某个位置。顺便说一下,wxMouseEvent GetPosition();向我报告(100100) 删除工具栏解决了这个问题,但是,我想保留工具栏以便于选择工具 我使用代码: m_ToolBar
m_ToolBar=new wxToolBar(this, wxID_ANY);
m_ToolBar->AddTool() //
m_ToolBar->Realize();
this->SetToolBar(m_ToolBar);
任何想法都将受到欢迎。您始终可以使用手动按工具栏高度偏移坐标,但通常情况下,这是不必要的,如果“正常”帧不发生这种情况,而仅在wxmdicildframe
中发生,则wxWidgets中的错误应该是
还建议不要在
wxFrame
本身上绘制,而是将wxWindow
放入其中并在其上绘制。这也可以解决您的问题。非常感谢,这很有帮助!我意识到wxToolBar可以被视为一个常规组件。我已经包括了一个wxBoxSizer和wxPanel,我正在其上绘制,而不是直接绘制到框架上。我通过wxBoxSizer添加了wxToolBar和wxPanel,解决了这个问题。