一、在MFC做的界面时时常会用到列表选择框,在MFC中列表框有三种:
1.列表框
只显示一个框体,没有下拉列表。实现方式如下:
添加一个Listbox控件,ID设置为IDC_WEB_LIST,Sort属性设为False,以取消排序显示。
再添加一个静态文本控件和一个编辑框,静态文本控件的Caption属性设为“您选择的站点:”,编辑框的ID设为IDC_SEL_WEB_EDIT,Read Only属性设为True。
即可出现如上图的界面。
首先,添加一个初始化函数(在类向导的虚函数里面添加),在初始化函数写如下代码:
m_combo_box.AddString(_T("新浪"));
m_combo_box.AddString(_T("天涯"));
m_combo_box.InsertString(1,_T("猫扑"));
其中:m_combo_box为ListBox的一个成员变量,addString为向变量中添加选择项。
然后,为ListBox添加一个响应函数。函数内容如下:
CString m_string;
int sec;
sec=m_combo_box.GetCurSel();
m_combo_box.GetLBText(sec,m_string);
SetDlgItemText(IDC_SEL_EDIT,m_string);
其中:GetCurSel();
为获取选择项的序号(int型)。
GetLBText(sec,m_string),获取序号为sec,的内容。
SetDlgItemText(IDC_SEL_EDIT,m_string);,将ID为IDC_SEL_EDIT的编辑框的内容改为m_string.
实现的效果是,选中一个项后,编辑框中会出现选择项的名称。
2.组合框
组合框其实就是把一个编辑框和一个列表框组合到了一起,分为三种:简易(Simple)组合框、下拉式(Dropdown)组合框和下拉列表式(Drop List)组合框。下面讲讲它们的区别。
简易组合框中的列表框是一直显示的,效果如下图:
下拉式组合框默认不显示列表框,只有在点击了编辑框右侧的下拉箭头才会弹出列表框,列表框弹出后如下图:
下拉列表式组合框的编辑框是不能编辑的,只能由用户在下拉列表框中选择了某项后,在编辑框中显示其文本。下拉列表式组合框如下图:
添加一个Combo Box控件,ID设置为IDC_WEB_COMBO,Type属性设为Drop List,为下拉列表式组合框,编辑框不允许用户输入,Sort属性设为False,以取消排序显示。
再添加一个静态文本控件和一个编辑框,静态文本控件的Caption属性设为“您选择的网站:”,编辑框的ID设为IDC_SEL_WEB_EDIT,Read Only属性设为True。
其中代码相似,如下:
Combo Box的初始化函数内容如下:
m_combo_box.AddString(_T("天涯"));
m_combo_box.InsertString(1,_T("猫扑"));
// 编辑框中默认显示第一项的文字“鸡啄米”
SetDlgItemText(IDC_SEL_EDIT, _T("新浪"));
Combo Box的响应函数如下:
CString m_string;
int sec;
sec=m_combo_box.GetCurSel();
m_combo_box.GetLBText(sec,m_string);
SetDlgItemText(IDC_SEL_EDIT,m_string);
----------------------------------------------------------------------end-----------------------------------------------