2011-02-25 64 views
0

在我的程序中,我希望用户能够在一些选项中进行选择,因此我使用的是wxChoice组件。不幸的是,在用户交互(单击按钮)后,我必须显示自定义文本(不是来自我的预定义列表)。一切工作正常,如果我使用wxCombobox控制,但这种方法的缺点是,每次用户从列表中选择一个元素,选定的文本是highlited。这很烦人。我希望组件是只读的。如何实现这一目标?如何摆脱wxwidget combobox组件中的文本选择?

某些代码形象化我的问题:

wxComboBox* viewAngle = wxDynamicCast(owner->FindWindow 
    (ID_CHOICE_3D_VIEWANGLE), wxComboBox); 
viewAngle->SetSelection(wxNOT_FOUND); 
viewAngle->SetValue(_("Custom View")); 

编辑:

该控制用于设置在3D对象查看器应用程序的相机视图。可能的选项类似于:顶部,左侧,右侧等。用户也可以使用鼠标移动3D对象。在这种情况下,我希望我的组合框显示“自定义视图”字符串。但是“自定义视图”不应该是组合框列表的一部分,因为选择此选项不会执行任何操作。 wxWidgets默认实现alwasy标记选定的文本。这可能会让用户产生误解,因为他可能认为他需要输入任何文本。

+0

请详细解释一下。 “我必须显示自定义文本(不是来自我的预定义列表)” - 为什么不将自定义文本添加到wxChoice控件? “用户从列表中选择一个元素,选定的文本被高亮显示,这很烦人。” - 为什么它很烦人?如果在选择后没有突出显示,那会很奇怪吗? – ravenspoint 2011-02-25 16:54:16

回答

0

恕我直言,应该将自定义文本添加到wxComboBox控件,当用户选择该选项时,程序可以忽略它。

此外,wxComboBox的wxCB_READONLY风格可以用来避免突出显示的东西。