Page 1 of 1

关于wxSizer的使用

Posted: Fri Dec 04, 2009 9:57 am
by spf9988
最近有碰到一个情况,在一个必须继承自wxWindow的窗口类中中布局几个控件,于是想到了使用wxSizer,但总是不成功,所有的控件都以(0,0)开始,挤在左上角,于是做了以下几个小实验:

1、把继承自wxWindow改为继承自wxDialog和wxFrame,wxSizer效果正常。这是常规的用法,说明wxSizer的代码没有错误。
2、考虑是否在继承自wxWindow的窗口和wxSizer之间再加一层wxPanel,不知效果如何,尚待实验。(P.S.最终没有实验,不过依据下面的最终结论,应该也是不行的,wxPanel不是顶层窗口)


请高人指点,
1、wxSizer都可以用于哪些窗口类?
2、最顶层的Sizer应该SetSizer设置给parent还是this??

***通过一番实验解决了***
wxSizer可以直接使用于wxDialog, wxFrame, wxTopLevelWindow这些顶层窗口,如果用在wxWindow,需要使用SetSizer将该窗口内的顶层布局控件与顶层窗口绑定(在《使用wxWidgets进行跨平台开发》中找到了对此的说明)

Posted: Fri Dec 04, 2009 10:24 am
by spf9988
实验又有新进展,还是在继承自wxWindow的类中,这两句
parent->SetSizer( item0 );
item0->SetSizeHints( parent );
如果parent处使用的是this,则所有控件都挤在左上角,如果如上,使用parent(父窗口的指针),则Sizer效果正常。

Re: 关于wxSizer的使用

Posted: Mon Jun 09, 2014 10:12 pm
by ccnyou