创建单选按钮

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_SIZEwxFrame documentation 的描述中所述,默认情况下它会调整其 子项的大小以填充整个客户区。当您将 wxPanel 作为框架的单个子项时,这在常见情况下非常方便,但如果您只想拥有一个单选框,则显然不是那么方便。

要解决此问题,请定义您自己的 wxEVT_SIZE 处理程序什么也不做。或者,也许更简单,只需创建另一个 window(可以是没有标签的 wxStaticText,使其实际上不可见)。

当然,由于平台、显示 DPI 等方面的差异,使用绝对位置和大小在任何情况下都行不通,因此 强烈 不建议这样做.为布局使用 sizer 而不是至少使用对话框单位而不是像素值。