Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface wxToolBar更改设备坐标_User Interface_Wxwidgets - Fatal编程技术网

User interface wxToolBar更改设备坐标

User interface wxToolBar更改设备坐标,user-interface,wxwidgets,User Interface,Wxwidgets,我正在使用鼠标在MDIChildFrame的客户区绘制2D形状。最近,我在框架中添加了一个wxToolBar,当我现在在客户端区域上绘制一个形状时,这些点似乎随着工具栏的大小而改变。想象一下,我用鼠标点击(100100)并画一条线到(150150);但是,该行出现在(75,75)到(125125)之间的某个位置。顺便说一下,wxMouseEvent GetPosition();向我报告(100100) 删除工具栏解决了这个问题,但是,我想保留工具栏以便于选择工具 我使用代码: m_ToolBar

我正在使用鼠标在MDIChildFrame的客户区绘制2D形状。最近,我在框架中添加了一个wxToolBar,当我现在在客户端区域上绘制一个形状时,这些点似乎随着工具栏的大小而改变。想象一下,我用鼠标点击(100100)并画一条线到(150150);但是,该行出现在(75,75)到(125125)之间的某个位置。顺便说一下,wxMouseEvent GetPosition();向我报告(100100)

删除工具栏解决了这个问题,但是,我想保留工具栏以便于选择工具

我使用代码:

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,解决了这个问题。