列表控件(排序)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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()

相关文档
最新文档