wxComboBox
combobox由一个编辑框和列表组成。它可以显示为带有可编辑或只读文本框的静态列表,也可以显示为带下拉列表的文本区域,或者是不带文本框的下拉列表。
一个combobox只允许单选。Combobox的选择项从0开始编号。
如果你需要定制combobox,可以参照wxComboCtrl,wxOwnerDrawnComboBox,wxComboPopup和即将可用的wxBitmapComBox等控件。
1、 继承关系
wxControlWithItems->wxControl->wxWindow->wxEvtHandler->wxObject
2、 头文件
<wx/combox.h>
3、 样式
wxCB_SIMPLE 创建一个带列表显示的combobox.只支持windows
wxCB_DROPDOWN 创建一个带下拉列表的combobox
wxCB_READONLY 同wxCB_DROPDOWN,但只有被当做combobox选择项的字符串才能被选定,不在选择列表中的字符串无法将无法填入控件中的文本框。
wxCB_SORT 列表项按字母序排序
wxTE_PROCES_ENTER 此样式下控件会产生事件wxEVT_COMMAND_TEXT_ENTER(否则按下Enter键要么被控件内部处理,要么被用于控件导航)。仅支持windows。
4、 事件处理(其实在实际应用中,下面的事件映射宏可能不需要id,可以参照一下sample中的程序,所以此处不是很清楚)
EVT_COMBOBOX(id,func) //当列表中的一个项被选择时,处理wxEVT_COMMAND_COMBOBOX_SELECTED事件。注意到调用GetValue返回的是选择后的值。
EVT_TEXT(id,func) //当combobox文本改变时,处理wxEVT_COMMAND_TEXT_UPDATED事件
EVT_TEXT_ENTER(id,func) //当在combobox中按下回车键时,处理wxEVT_TEXT_ENTER事件。
5、 常用成员函数
int GetCurrentSelection() const //返回从下拉列表中选择后的项,否则同GetSelection
wxString GetValue() const //返回combobox文本框中的文本
void SetValue(const wxString& text) //设置combobox文本框的文本,如果combobox带有wxCB_READONLY样式,要设置的字符串必须在combobox的选择列表中才行,否则该函数将被忽略。