创建单选按钮
Creating radio button
我在 wxWidgets 中使用单选按钮,但在初始化按钮的大小及其在框架上的坐标时遇到问题。
下面的代码创建了单选按钮,但没有给它正确的大小和起始坐标(wxPoint 和 wxSize 不起作用)。
我的问题是:在这种情况下如何正确实现 wxSize 和 wxPoint?
谢谢,
//Units Radio Box
wxString choices[] = { "Metric (mm)","Imperial (in.)" };
int Num_Choices = 2;
wxRadioBox * Units;
Units = new wxRadioBox(this,
wxID_ANY,
_T("Input Units"),
wxPoint(-20,-25),
wxSize(20,20),
Num_Choices,
choices,
1,
wxRA_SPECIFY_COLS,
wxDefaultValidator,
_T("Input Units"));
如 EVT_SIZE
对 wxFrame documentation 的描述中所述,默认情况下它会调整其 仅 子项的大小以填充整个客户区。当您将 wxPanel
作为框架的单个子项时,这在常见情况下非常方便,但如果您只想拥有一个单选框,则显然不是那么方便。
要解决此问题,请定义您自己的 wxEVT_SIZE
处理程序什么也不做。或者,也许更简单,只需创建另一个 window(可以是没有标签的 wxStaticText
,使其实际上不可见)。
当然,由于平台、显示 DPI 等方面的差异,使用绝对位置和大小在任何情况下都行不通,因此 强烈 不建议这样做.为布局使用 sizer 而不是至少使用对话框单位而不是像素值。
我在 wxWidgets 中使用单选按钮,但在初始化按钮的大小及其在框架上的坐标时遇到问题。
下面的代码创建了单选按钮,但没有给它正确的大小和起始坐标(wxPoint 和 wxSize 不起作用)。
我的问题是:在这种情况下如何正确实现 wxSize 和 wxPoint?
谢谢,
//Units Radio Box
wxString choices[] = { "Metric (mm)","Imperial (in.)" };
int Num_Choices = 2;
wxRadioBox * Units;
Units = new wxRadioBox(this,
wxID_ANY,
_T("Input Units"),
wxPoint(-20,-25),
wxSize(20,20),
Num_Choices,
choices,
1,
wxRA_SPECIFY_COLS,
wxDefaultValidator,
_T("Input Units"));
如 EVT_SIZE
对 wxFrame documentation 的描述中所述,默认情况下它会调整其 仅 子项的大小以填充整个客户区。当您将 wxPanel
作为框架的单个子项时,这在常见情况下非常方便,但如果您只想拥有一个单选框,则显然不是那么方便。
要解决此问题,请定义您自己的 wxEVT_SIZE
处理程序什么也不做。或者,也许更简单,只需创建另一个 window(可以是没有标签的 wxStaticText
,使其实际上不可见)。
当然,由于平台、显示 DPI 等方面的差异,使用绝对位置和大小在任何情况下都行不通,因此 强烈 不建议这样做.为布局使用 sizer 而不是至少使用对话框单位而不是像素值。