第5讲列表控件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五讲列表控件
本讲主要介绍组合框(Combo Box)控件和列表框(List Box)控件的的使
用方法。
一.创建一个基于对话框的应用程序模板
1.选择应用程序类型:
选择“File\New”菜单→在弹出的“New”对话框的选择“Projects”
选项卡→应用程序类型选择“MFC AppWizard(exe)”→“Project name”编辑框中输入“ListBox”→“Location”编辑框中输入适当的路径→单击“OK”
2.选择项目类型
在“MFC AppWizar – Step 1”对话框中“Dialog based”单选钮→
单击“Finish”按钮。
二.修改对话框模板
把主对话框模板修改成如下图所示:
图6-1
1.增加“编号”、“姓名”、“出生年月”、“性别”、“职称”和“职工情况列表”
等六个静态文本
2.在“编号”右侧增加一个下沉风格的静态文本,资源符号为:IDC_NUMBER 在“Styles”选项卡的“Center-vertically”复选钮:选中
3.在“姓名”和“出生年月”右侧,增加二个编辑框,资源符号分别为:
IDC_NAME, IDC_BIRTHDAY
4.在“性别”和“职称”右侧,增加二个组合框,资源符号分别命名为:
IDC_SEX 在Combo Box Properties对话框的styles选项卡的 type下拉列表框中选择Drop List
注: Drop List选项不允许组合框编辑输入
IDC_TITLE 在Combo Box Properties对话框的styles选项卡的 type下拉列表框中选择Drop List
注: Dropdown选项允许组合框编辑输入
5.增加“添加”、“删除当前选定行”和“在选定行前插入”三个按钮,ID值命名为: IDC_ADD, IDC_DELETE, IDC_INSERT
6.在“职工情况列表”的下方,增加一个列表控件”List Control”:在”List Control Properties”对话框中如下设置:
A.在General选项卡的ID组合框中输入: IDC_LIST
B.在Styles选项卡中选择:
“View:”下拉列表框: Report
“Align:”下拉列表框: Top
“Sort:”下拉列表框: Ascending
“Single selection”复选框:选中
三.为控件连接变量
为各控件连接的变量名及其值类型和变量类型如下(连接方法前已述):
控件ID 变量名变量类别变量类型
IDC_NUMBER m_nNumber value CString
IDC_NAME m_sName value CString
IDC_BIRTHDAY m_sBirthday value CString
IDC_SEX m_nSex valve int
m_cSex Control CComboBox
IDC_TITLE m_sTitle value CString
m_cTitle Control CComboBox
IDC_LIST m_cList Control CListBox 注:IDC_TITLE组合框控件上各连连接了两个变量,它们值类型分别为value 和Control,连接方法是对同一个控件ID,两次使用“Add Variables…”
即可。
四.组合框控件的初始化
1.在CListBoxDlg类中添加二个成员变量:
变量类型变量名作用域
CString strTitle public
CString m_sSex public
2.在CListBoxDlg类的构造函数中对变量strTitle初始化:
strTitle="助教/讲师/副教授/教授/";
3.在CListBoxDlg类中添加一个函数:
函数类型:void 函数名:InitCombo() 作用域:Protected 4.编写函数InitCombo()成:
void CListBoxDlg::InitCombo()
{
int i,n;
CString s1[2] = {"男","女"};
for(i=0;i<2;i++) m_cSex.AddString(s1[i]);
CString s,s2=strTitle;
while(s2 != "")
{
n=s2.Find('/',0);
s=s2.Left(n);
m_cTitle.AddString(s);
s2.Delete(0,n+1);
}
}
3.在CListBoxDlg类的OnInitDialog()函数中添加一条语句:
// TODO: Add extra initialization here
InitCombo();
4.编译并运行程序,观察程序的运行情况
五.组合框内容的获取
经过下拉列表的选择或编辑输入后,组合框中具有了内容,要获取这些
内容可如下操作:
1.为组合框控件IDC_SEX增加一个CBN_SELCHANGE消息响应函数
OnSelchangeSex()如下:
1)选择“View\ClassWizard…”菜单项
2)在弹出的MFC Classwizard对话框中如下操作:
A.选择Message Maps选项卡
B.在Class name下拉列表框中选择CListBoxDlg类
C.在Object IDs列表框中选择:IDC_SEX
D.在Messages列表框中选择CBN_SELCHANGE
E.单击Add Function按钮,在弹出的Add member function对话框中单击OK按钮
F.再单击MFC Classwizard对话框的“Edit code”按钮,进入函数编辑
3)编写OnSelchangeSex()如下:
void CListBoxDlg::OnSelchangeSex()