上一篇:MFC界面编程基础(12):组框、单选按钮和复选框 | 下一篇:MFC界面编程基础(14):滚动条 |
---|
列表框和组合框
列表框是CListBox类的对象,组合框是CComboBox的对象。
列表框
- 属性设置
列表框的重要属性有: - Selection
该属性决定用户的选择方式,缺省值为 Single 。属性值有:
①:Single ── 单项选择
②:Multiple ── 多项选择,但是忽略 Ctrl 和 Alt 键。
③:Extended ── 允许使用 Ctrl 和 Alt 进行多项选择
④:None ── 禁止选择
- Sort
当该属性被设置为True后,列表框中的选项按字母顺序排列。
- 常用成员函数
- 添加项目
格式: int AddString( LPCTSTR lpszItem );
例如:语句 m_l. AddString(" 陈蓉 ") ; 把“陈蓉”添加到了列表框 m_l 中。 - 删除项目
格式: int DeleteString( UINT nIndex );
说明: nIndex 表示被删除项目在列表框中的位置,对于第一个选项nIndex应为 0 。
例如:语句 m_l. DeleteString (4) ;删除列表框中的第 5 个项目。 - 获取当前被选定的项目的序号
格式: int GetCurSel( ) const;
例如:语句int I=m_l.GetCurSel(); 将使I 获得 m_l 列表框中当前选定的项目的序号。 - 获取列表框中指定的项目
格式 1 : int GetText( int nIndex, LPTSTR lpszBuffer ) const;
格式 2 : void GetText( int nIndex, CString& rString ) const;
说明 :将列表框中第 nIndex 个选项的文本送到 lpszBuffer 或 rString 中。
例如:假定有说明语句 char s1[20]; CString s2;则语句 m_l.GetText(4, s1); 和 m_l. GetText(4, s2); 把第 5 项内容分别送到 s1 和 s2 中。
【例】
编写一个能对列表框进行项目添加、修改和删除操作的应用程序,如图所示。“添加”按钮的功能是将文本框中的内容添加到列表框,“删除”按钮的功能是删除列表框中选定的选项。如果要修改列表框,则首先选定选项,然后单击“修改”按钮,所选的选项显示在文本框中,当在文本框中修改完之后再单击“修改确定”按钮更新列表框。
- 界面设计
首先创建一个对话框应用程序框架,然后放置按钮。列表框和命令按钮按表连接变量,其余控件不需要连接变量。
- 初始化
列表框的选项在对话框的初始化函数中用 AddString 函数添加。
BOOL CTESTDlg::OnInitDialog()
{
┆
// TODO: Add extra initialization here
m_l.AddString(" 大学计算机基础 ");
m_l.AddString("C/C++ 程序设计 ");
m_l.AddString("VB 程序设计 ");
m_l.AddString(" 软件技术基础 ");
┆
}
- 消息处理函数
…………………………………………………………
void CTESTDlg::OnButton1() // 选择“添加”后执行的函数
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
m_l.AddString(m_e);
m_e="";
UpdateData(FALSE);
}
…………………………………………………………
void CTESTDlg::OnButton2() // 选择“删除”后执行的函数
{
// TODO: Add your control notification handler code here
int n=m_l.GetCurSel();
m_l.DeleteString(n);
}
…………………………………………………………
void CTESTDlg::OnButton3() // 选择“修改”后执行的函数
{
// 将选定的项目送编辑框供修改
// TODO: Add your control notification handler code here
CString s;
int n=m_l.GetCurSel();
m_l.GetText(n,s);
m_e=s;
UpdateData(FALSE);
}
…………………………………………………………
void CTESTDlg::OnButton4() // 选择“确定修改”后执行的函数
{
// 将修改后的项目送回列表框中,替换原项目,实现修改。
// TODO: Add your control notification handler code here
UpdateData(TRUE);
int n=m_l.GetCurSel();
m_l.DeleteString(n);
m_l.InsertString(n,m_e);
m_e="";
UpdateData(FALSE);
}
…………………………………………………………
组合框
-
属性设置
-
种类( Type )
该属性用于指定组合框的类型,共有三个选择: Simple 、 Dropdown 和 Droplist ,默认值为 Dropdown 。
-
键入列表框项( Enter listbox items )
在列表框的属性窗口有一个“ Data ”属性,这是在设计阶段输入选项的地方,如图所示。输入每一项都需要用分号分隔
-
常用成员函数
编辑框和列表框的成员函数几乎都可以用于组合框,但是列表框的成员函数 GetText() 在组合框中的是 GetLBText() 。 -
int GetLBText( int nIndex, LPTSTR lpszText ) const;
-
void GetLBText( int nIndex, CString& rString ) const;
说明 :使用 GetLBText 函数可以将组合框中的第 nIndex 个项目的文本送入 lpszText 或 rString 中。 -
组合框发出的消息
-
CBN_SELECTCHANGE :组合框的列表框中的选项改变时发送。
-
CBN_EDITCHANGE :组合框的编辑框中文本改变时发出。
【例】
设计一个如图所示的对话框。如果单击“确定”按钮,则用 MessageBox 显示如图所示的信息框。
- 首先创建一个对话框程序框架,然后放置各控件,进行属性设置,组合框的选项在设计阶段直接输入,按表连接变量,其余控件不需要连接变量。
- 消息处理函数
void CTESTDlg::OnButton1()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
CString s;
s=" 品牌 :";
s=s+m_c;
s=s+"\n";
s=s+" 数量 :";
s=s+m_e;
MessageBox(s);
}
上一篇:MFC界面编程基础(12):组框、单选按钮和复选框 | 下一篇:MFC界面编程基础(14):滚动条 |
---|