文档库 最新最全的文档下载
当前位置:文档库 › 列表控件(排序)

列表控件(排序)

列表控件(排序)
列表控件(排序)

本讲主要介绍组合框(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()

{

// TODO: Add your control notification handler code here UpdateData();

int n=m_cSex.GetCurSel();

if(n!=CB_ERR) m_cSex.GetLBText(n,m_sSex);

}

2.为组合框控件IDC_TITLE增加一个CBN_SELCHANGE消息响应函数

OnSelchangeTitle(),方法同上,函数程序如下:

void CListBoxDlg::OnSelchangeTitle()

{

// TODO: Add your control notification handler code here

UpdateData();

int n=m_cTitle.GetCurSel();

if(n!=CB_ERR) m_cTitle.GetLBText(n,m_sTitle);

}

3.为按钮控件IDC_ADD添加一个BN_CLICKED消息响应函数OnAdd()如下:

void CListBoxDlg::OnAdd()

{

// TODO: Add your control notification handler code here

CString str="性别:"+m_sSex+"\n\n职称:"+m_sTitle;

MessageBox(str);

}

4.编译并运动程序,观察程序的运行情况。

由程序的运行情况可见:通过下拉列表选择的内容能正确地获取,但在 IDC_TITLE控件中通过编辑输入的数据无法正确地获取。为解决这一问题并使编辑输入的内容能增添到下拉列表中,可如下操作:

A.仿上,为控件IDC_TITLE增添一条CBN_KILLFOCUS消息响应函数:

OnKillfocusTitle()

B.编写函数体如下:

void CListBoxDlg::OnKillfocusTitle()

{

// TODO: Add your control notification handler code here

//获取编辑输入的内容

UpdateData();

int n=m_cTitle.GetCurSel();

if(n!=CB_ERR) m_cTitle.GetLBText(n,m_sTitle);

//把编辑输入的内容增添到下拉列表中

if(m_sTitle!="" && strTitle.Find(m_sTitle,0)<0)

{

m_cTitle.AddString(m_sTitle);

strTitle=strTitle+m_sTitle+'/';

}

}

C.再编译并运行程序,观察运行情况。

六.列表框List Box的初始化

1.在CListBoxDlg类中添加一个函数:

函数类型:void 函数名:InitList() 作用域:Protected 2.编定函数体如下:

void CListBoxDlg::InitList()

{

m_cList.InsertColumn(0,"编号",LVCFMT_LEFT,70);

m_cList.InsertColumn(1,"姓名",LVCFMT_LEFT,70);

m_cList.InsertColumn(2,"出生年月",LVCFMT_LEFT,70);

m_cList.InsertColumn(3,"性别",LVCFMT_LEFT,70);

m_cList.InsertColumn(4,"职称",LVCFMT_LEFT,70);

① m_cList.SetExtendedStyle(LVS_EX_FULLROWSELECT);

}

注:①行设置列表控件的行被选中时整行反白显示

3.在CListBoxDlg类的OnInitDialog()函数中添加几条语句(红色):

// TODO: Add extra initialization here

InitCombo();

InitList();

4编译并运行程序,观察程序的运行界面

七.在列表控件中增添、删除和插入内容

1.把输入内容增添到列表控件中

A.在CListBoxDlg类中增加一个protected类int型变量:m_nNumber,并在CListBoxDlg类的构造函数中添加以下赋值语句:

m_nNumber=1;

B.在CListBoxDlg类的OnInitDialog()函数中添加四条语句(红色):

InitList();

① m_sNumber.Format("%d",m_nNumber);

② GetDlgItem(IDC_DELETE)->EnableWindow(false);

③ GetDlgItem(IDC_INSERT)->EnableWindow(false);

④ UpdateData(false);

注:①句:给编号赋初值

②③:由于刚开始时列表控件中尚无任何内容,故不能“删除”或

“插入”

④句:回显数据。

C.修改OnAdd()函数成:

void CListBoxDlg::OnAdd()

{

// TODO: Add your control notification handler code here

int m,n;

UpdateData();

m=m_cTitle.GetCurSel(); //获取IDC_TITLE控件内容

if(m!=CB_ERR) m_cTitle.GetLBText(m,m_sTitle);

m=m_cSex.GetCurSel(); //获取IDC_SEX控件内容

if(m!=CB_ERR) m_cSex.GetLBText(m,m_sSex);

if(m_sName==""||m_sBirthday==""||m_sSex==""||m_sTitle=="") return;

//把输入内容增添到列表控件中

n=m_cList.InsertItem(0,m_sNumber);

m_cList.SetItemText(n,1,m_sName);

m_cList.SetItemText(n,2,m_sBirthday);

m_cList.SetItemText(n,3,m_sSex);

m_cList.SetItemText(n,4,m_sTitle);

m_nNumber++; // 把职工资料初始化为空

m_sNumber.Format("%d",m_nNumber);

m_sName="";

m_sBirthday="";

m_sSex="";

m_nSex=-1; // 把性别组合框设置成空

m_sTitle="";

GetDlgItem(IDC_NAME)->SetFocus(); //把输入焦点置于IDC_NAME //控件上

UpdateData(false);

}

D.编译并运行程序,观察运行结果。

此时,编辑框和组合框中的输入内容能依次添加到列表控件中,并且,

若输入内容不全,会拒绝添加。

2.删除列表控件中选定行的内容

A.用“MFC CLasswizard”对话框,为控件IDC_LIST添加一个消息响应函数OnClickList(),并编写该函数如下:

void CListBoxDlg::OnClickList(NMHDR* pNMHDR, LRESULT* pResult) {

// TODO: Add your control notification handler code here

*pResult = 0;

int n=m_cList.GetNextItem(-1,LVNI_SELECTED);

if(n!=-1) // 若所选行有效,则向对话框回显其内容

{

m_sNumber=m_cList.GetItemText(n,0);

m_sName=m_cList.GetItemText(n,1);

m_sBirthday=m_cList.GetItemText(n,2);

m_sSex=m_cList.GetItemText(n,3);

m_nSex=(m_sSex=="男")?0:1; //把性别回显至性别组合框

m_sTitle=m_cList.GetItemText(n,4);

GetDlgItem(IDC_DELETE)->EnableWindow(true);

GetDlgItem(IDC_INSERT)->EnableWindow(true);

GetDlgItem(IDC_ADD)->SetWindowText("修改");

UpdateData(false);

}

}

B.用“MFC CLasswizard”对话框,为控件IDC_DELETE添加一个消息响应函数OnDelete(),并编写该函数如下:

void CListBoxDlg::OnDelete()

{

// TODO: Add your control notification handler code here int n;

CString s1,s2,s3,s4,str;

n=m_cList.GetNextItem(-1,LVNI_SELECTED);

if(n!=-1)

{

m_cList.DeleteItem(n);

m_nNumber--;

m_sNumber.Format("%d",m_nNumber);

m_sName="";

m_sBirthday="";

m_nSex=-1;

m_sTitle="";

UpdateData(false);

}

}

C.编译并运行程序,可见:

能在列表框中删除选行的内容,但删除内容的编号不再连续,并且按

钮IDC_APPEND的行为不正常,为解决上述问题,应:

D.在OnAdd()函数中增添几条语句(红色):

if(m_sName==""||m_sBirthday==""||m_sSex==""||m_sTitle=="")

return;

bool bState=GetDlgItem(IDC_DELETE)->IsWindowEnabled();

if(bState) // "删除"按钮可用时,先删除所选行

{

n=m_cList.GetNextItem(-1,LVNI_SELECTED);

m_cList.DeleteItem(n);

GetDlgItem(IDC_DELETE)->EnableWindow(false);

GetDlgItem(IDC_INSERT)->EnableWindow(false);

GetDlgItem(IDC_ADD)->SetWindowText("添加");

m_nNumber--;

}

E.函数OnDelete()应如下编写:

void CListBoxDlg::OnDelete()

{

// TODO: Add your control notification handler code here int i,n,ItemNo;

CString s[5];

CString str="";

n=m_cList.GetNextItem(-1,LVNI_SELECTED);

m_cList.DeleteItem(n);

ItemNo=m_cList.GetItemCount();

for(n=0;n

{

for(i=1;i<5;i++)

{

s[i]=m_cList.GetItemText(n,i);

str=str+s[i]+"/";

}

}

m_cList.DeleteAllItems();

for(n=0;n

{

m_sNumber.Format("%d",n+1);

m_sName=str.Left(i=str.Find("/",0));

str.Delete(0,i+1);

m_sBirthday=str.Left(i=str.Find("/",0));

str.Delete(0,i+1);

m_sSex=str.Left(i=str.Find("/",0));

str.Delete(0,i+1);

m_sTitle=str.Left(i=str.Find("/",0));

str.Delete(0,i+1);

n=m_cList.InsertItem(0,m_sNumber);

m_cList.SetItemText(n,1,m_sName);

m_cList.SetItemText(n,2,m_sBirthday);

m_cList.SetItemText(n,3,m_sSex);

m_cList.SetItemText(n,4,m_sTitle);

}

m_nNumber=ItemNo+1; // 把职工资料初始化为空

m_sNumber.Format("%d",m_nNumber);

m_sName="";

m_sBirthday="";

m_sSex="";

m_cSex.SetCurSel(-1);

m_sTitle="";

GetDlgItem(IDC_DELETE)->EnableWindow(false);

GetDlgItem(IDC_INSERT)->EnableWindow(false);

GetDlgItem(IDC_APPEND)->SetWindowText("添加");

GetDlgItem(IDC_NAME)->SetFocus(); //把输入焦点置于IDC_NAME //控件上

UpdateData(false);

}

F.上述函数OnDelete()编写得较复杂,当列表框中数据较多时更新速度较慢,并且可能产生意想不到的问题。为此,函数OnDelete()可在功能不

变的前提下简化如下:

void CListBoxDlg::OnDelete()

{

// TODO: Add your control notification handler code here

int i,n,ItemNo,m,nc;

CString s[5];

CString str="";

n=m_cList.GetNextItem(-1,LVNI_SELECTED);

m_cList.DeleteItem(n);

ItemNo=m_cList.GetItemCount();

for(m=n;m

{

for(i=1;i<5;i++) s[i]=m_cList.GetItemText(m,i);

m_cList.DeleteItem(m);

s[0].Format("%d",m+1);

nc=m_cList.InsertItem(0,m_sNumber);

for(i=1;i<5;i++) m_cList.SetItemText(nc,i,s[i]);

}

m_nNumber=ItemNo+1; // 把职工资料初始化为空

m_sNumber.Format("%d",m_nNumber);

m_sName="";

m_sBirthday="";

m_sSex="";

m_nSex=-1;

m_sTitle="";

GetDlgItem(IDC_DELETE)->EnableWindow(false);

GetDlgItem(IDC_INSERT)->EnableWindow(false);

GetDlgItem(IDC_ADD)->SetWindowText("添加");

GetDlgItem(IDC_NAME)->SetFocus(); //把输入焦点置于IDC_NAME //控件上

UpdateData(false);

}

3.在列表控件的选定行前插入内容

A.为“插入”按钮控件添加一条消息响应函数OnInsert();

B.编写OnInsert()函数如下:

void CListBoxDlg::OnInsert()

{

// TODO: Add your control notification handler code here

int i,n,ItemNo,m,nc;

CString s[5];

n=m_cList.GetNextItem(-1,LVNI_SELECTED);

ItemNo=m_cList.GetItemCount();

for(m=ItemNo-1;m>=n;m--)

{

for(i=1;i<5;i++) s[i]=m_cList.GetItemText(m,i);

m_cList.DeleteItem(m);

s[0].Format("%d",m+2);

nc=m_cList.InsertItem(0,s[0]);

for(i=1;i<5;i++) m_cList.SetItemText(nc,i,s[i]);

}

UpdateData();

n=m_cList.InsertItem(0,m_sNumber);

m_cList.SetItemText(n,1,m_sName);

m_cList.SetItemText(n,2,m_sBirthday);

m_cList.SetItemText(n,3,m_sSex);

m_cList.SetItemText(n,4,m_sTitle);

m_nNumber=ItemNo+1; // 把职工资料初始化为空

m_sNumber.Format("%d",m_nNumber);

m_sName="";

m_sBirthday="";

m_sSex="";

m_nSex=-1;

m_sTitle="";

GetDlgItem(IDC_DELETE)->EnableWindow(false);

GetDlgItem(IDC_INSERT)->EnableWindow(false);

GetDlgItem(IDC_ADD)->SetWindowText("添加");

GetDlgItem(IDC_NAME)->SetFocus(); //把输入焦点置于IDC_NAME //控件上

UpdateData(false);

}

八.把列表框中的数据存盘

1.在对话框模板上再增加一个资源符号为IDC_SAVE的按钮控件,把按钮标题设置成“把列表框内容存盘”

2.为上述按钮连接一个消息响应函数OnSave();

3.编写OnSave()函数如下:

void CListBoxDlg::OnSave()

{

// TODO: Add your control notification handler code here

int i,m,ItemNo,n=0;

FILE *fp;

UINT button=IDYES;

CString FileName,s[5];

while(button==IDYES)

{

CFileDialog SaveCurveDlg(false,"dat","StaffData",

OFN_OVERWRITEPROMPT,

"数据文件(*.dat)|*.dat|所有文件(*.*)|*.*||",NULL);

if(button=SaveCurveDlg.DoModal()==IDOK)

{

FileName=SaveCurveDlg.GetPathName();

if((fp=fopen(FileName,"w"))!=NULL)

{

ItemNo=m_cList.GetItemCount();

for(m=0;m

{

for(i=0;i<5;i++) s[i]=m_cList.GetItemText(m,i); fprintf(fp,"%-6s%-15s%-15s%-15s%-15s\n",

s[0],s[1],s[2],s[3],s[4]);

}

fclose(fp);

button=IDNO;

}

}

else button=AfxMessageBox("驱动器或磁盘没有准备好!\n\n"

"要重试吗?",MB_YESNO);

}

}

九.从数据文件把数据读入列表框

1.在对话框模板上再增加一个资源符号为IDC_READ的按钮控件,把按钮标题设置成“从数据文件读入数据”

2.为上述按钮连接一个消息响应函数OnRead();

3.编写OnRead()函数如下:

void CAnaSyn::InputRead()

{

int m,n=1;

FILE *fp;

CString FileName,str;

UINT button=IDYES;

while(button==IDYES)

{

CFileDialog ReadCurveDlg(true,NULL,NULL,OFN_HIDEREADONLY, "数据文件(*.dat)|*.dat|所有文件(*.*)|*.*||",NULL);

if(button=ReadCurveDlg.DoModal()==IDOK)

{

FileName=ReadCurveDlg.GetPathName();

if((fp=fopen(FileName,"r"))!=NULL)

{

while(!feof(fp))

{

fscanf(fp,"%s",str);

m=m_cList.InsertItem(0,str);

fscanf(fp,"%s",str);

m_cList.SetItemText(m,1,str);

fscanf(fp,"%s",str);

m_cList.SetItemText(m,2,str);

fscanf(fp,"%s",str);

m_cList.SetItemText(m,3,str);

fscanf(fp,"%s\n",str);

m_cList.SetItemText(m,4,str);

n++;

}

fclose(fp);

m_nNumber=n;

m_sNumber.Format("%d",m_nNumber);

m_sName=m_sBirthday=m_sTitle="";

button=IDNO;

UpdateData(false);

}

else button=AfxMessageBox("磁盘没准备好或文件没找到!\n\n" "要重试吗?",MB_YESNO);

}

}

}

VFP中的列表框控件(listbox)

VFP中的列表框控件(listbox) 一.列表框(listbox):主要用于选择一组指定的数据,用户从列表中选取选项,然后执行所需的操作. 二.列表框常用属性:见下表 注1(rowsourcetype属性可指定的值): 0-无,运行时使用列表框的确良additem和addlistitem方法加入 1-值,将列表框的内容在设计时直接写在该属性中 2-表别名:由columncount确定表中选择的字段.当用户选择列表框时,记录指针将自动移到该记录上 3-sql语句:见sql部分,由执行的结果产生. 4-查询文件名:见查询部分,由查询结果产生 5-数组名 6-字段名表:可用表别名作为字段前缀.当用户选择列表项时,记录指针将自动移到该记录上7-文件名描述框架,可包含"*"和"?"来描述在列表框中显示的文件名 8-结构

9-弹出式菜单,提供向后兼容. 二.列表框常用的方法:见下表 三.列表框常用事件:列表框的常用事件为click(单击)事件和dbclick(双击)事件. 四.例:列表框练习 1.新建表单,添加一个文本框text1,三个命令按钮command1~command3,三个命令按钮的caption属性依次设为"加入","移出"和"全部移出",一个列表框list1.界面如图25 2.设置属性:将表单的caption属性设为"列表框练习",autocenter属性设为.T.;将列表框list1的moverbars属性设为.T.,multiselect属性设为.T. 3.编写代码: ●"加入"命令按钮command1的click事件: qm=thisform.text1.value IF !empty(qm) no=.t. FOR i=1 to thisform.list1.listcount IF thisform.list1.list(i)=qm &&如果文本框中输入的内容和列表框中已存在的内容相同,则不添加 no=.f. ENDIF NEXT i IF no thisform.list1.additem(qm) thisform.refresh

ListBox控件

ListBox控件 1.功能 ListBox控件显示较长的选项列表,用户可从中选择一项或多项。如果项总数超出可以显示的项数,则自动向ListBox控件添加滚动条。ListBox控件列表中的每个元素称为项。图1所示为ListBox控件。 图1 ListBox控件 2.属性 ListBox控件常用属性及说明如表1所示。 表1 ListBox控件常用属性及说明 下面对比较重要的属性进行详细介绍。 (1)Items属性。该属性用于查看列表框中的项。 语法: public ObjectCollection Items { get; } 属性值:ListBox.ObjectCollection表示ListBox中的项。 说明: ① 该属性使用户可以获取对当前存储在 ListBox 中的项列表的引用。通过此引用,可以在集合中添加项、移除项和获得项的计数。

② 可以使用DataSource属性来操控ListBox的项。如果使用DataSource属性向ListBox 添加项,则可以使用Items属性查看ListBox中的项,但不能使用 ListBox.ObjectCollection的方法向该列表添加项或从中移除项。 (2)SelectedItem属性。该属性表示当前选中的项。 语法: public Object SelectedItem { get; set; } 属性值:表示控件中当前选定内容的对象。 说明:对于标准 ListBox,可以使用此属性确定在ListBox中选定了哪个项。如果 ListBox 的SelectionMode属性设置为SelectionMode.MultiSimple或 SelectionMode.MultiExtended(它指示多重选择ListBox),并在该列表中选定了多个项,则此属性可返回任何选定的项。 示例 把左边的文本框中的内容移到右边的文本框中 本示例主要使用Items属性向ListBox1控件添加项,然后使用SelectedItem属性将ListBox1控件中的选中项添加到ListBox2控件中。示例运行结果如图2和图3所示。 图2 ListBox1中项移动前 图3 ListBox1中项移动后 程序主要代码如下: SqlConnection con = new SqlConnection("server=ZHY\\zhy;uid=sa;pwd=;database=student"); con.Open(); SqlCommand com = new SqlCommand("select * from student",con); SqlDataReader dr = com.ExecuteReader();

图像列表控件(ImageList)的常用属性

2.11、图像列表控件(ImageList)的常用属性 属性说明(Name)图像列表控件的名称 (自定义)打开属性页 BackColor背景颜色。可从弹出的调色板选择。ImageHeight图像列表控件控件的高度 ImageWidth图像列表控件控件的宽度 Index在对象数组中的编号 Left距离容器左边框的距离 MaskColor 获得或设置一个值,决定在图像列表的图形操作中透明的颜色。可从弹出的调色板选择。 Tag存储程序所需的附加数据Top距容器顶部边界的距离 UseMaskColor 获得或设置一个值,决定图像列表控件是否使用MaskColor属性。取值为:True False 2.12、Inet控件的常用属性 属性说明(Name)Inet控件的名称 (自定义)打开属性页 AccessType 获得或设置该控件连接的代理行为。取值为: 0 icUseDefault 1 icDirect 2 icNamedProxy Document获得或设置要在服务器上检索的文档。Index在对象数组中的编号 Left距离容器左边框的距离 Password授权时使用的密码。 Protocol 该URL使用的协议。取值为: 0 icUnknown 1 icDefault 2 icFTP

4 icHTTP 5 icHTTPS Proxy当访问网时要使用的代理服务器。 RemoteHost获得或设置远程计算机。 RemotePort获得或设置远程计算机上要使用internet的端口。RequestTimeout获得或设置等待请求完成的秒数。 Tag存储程序所需的附加数据 Top距容器顶部边界的距离 URL获得或设置该控件使用的URL。 UserName授权时使用的用户名 2.13、列表视图控件(ListView)的常用属性 属性说明(Name)列表视图控件的名称 (自定义)打开属性页 AllowColumnReorder 获得或设置用户是否可以对报表显示的列重排序。取值为:True False Appearance 获得或设置是否用立体效果绘制。取值为: 0 ccFlat(平面) 1 cc3D(立体) Arrange 获得或设置排列列表视图控件中的图标或小图标视图。取值为: 0 lvwNone 1 lvwAutoLeft 2 lvwAutoTop BackColor背景颜色。可从弹出的调色板选择。 BorderStyle 获得或设置边界样式。取值为:0 ccNone(无边界线) 1 ccFixedSingle(固定单线框) CauseValidation 该控件获得焦点时,失去焦点的控件的Validate事件是否发生。取值为:True 发生 False 不发生 Checkboxes 获得或设置一个值,决定在列表的每一项的旁边,是否显示一个复选框。取值为: True 显示

列表框

4.4 列表框

本节主要内容:1 、列表框的常用属性 2 、列表框的常用方法

(用于提供一些可供选择的列表项目,用户可从中选择一项或多项。) 在实际应用中,常常有这样的情况:列出若干个项,供用户从中任意选择,并对其作某种处理。如果项目较多,超过了列表框的长度,则系统自动在列表框边上加一个垂直滚动条,通过移动滚动条可以使列 表框中的内容作上下滚动,以使用户能够看到所需要的内容,列表框的图标为。 1 、列表框的常用属性(返回) 1 .List 属性 用于设置或返回控件的列表项的内容。既可在属性窗口中设置,也可在设计中设置。 该属性是一个字符串数组,每个数组元素都是列表框中的一个列表项。 List 数组的下标从 0 开始,即List ( 0 )保存表中的第一个数据项的内容, List ( 1 )保存第二个数据项的内容,依次类推, List ( ListCount-1 )保存表中的最后一个数据项的内容。 2 .ListCount 属性 表示列表框中有多少个列表项。 ListCount-1 代表列表框中最后一项的序号。该属性只能在程序中引用它。 3 .Text 属性 返回被选中列表项的文本内容,与 List(ListIndex) 相同。该属性是只读的,不能在属性窗口中设置,也不能在程序中设置,如果列表框中选择了多项,列表框的 Text 属性返回的是最后一次选中的文本内容。 4 .ListIndex 属性 使用 ListIndex 属性判断列表框中哪个项被选中,即设置或返回被选中的选项在 List 数组中的下标序号。① 如果用户没有从列表框中选择任何一项,则 ListIndex 为 -1 。② 在列表框 List1 中选中第3 项,即 List1.List 数组的第 3 项,则 ListIndex = 2 ( ListIndex 从 0 开始)。③ 与 List 配合使用,可获得当前被选中的列表项的内容。 List1.List ( List1. ListIndex )。④ 设置默认选项 List1. ListIndex=0 ,第 0 项为默认选项。 ListIndex 属性不能在设计时设置,只有程序运行时才起作用。 5 .Selected 属性 该属性是一个逻辑数组,表示相应的项在程序运行期间是否被选中。例如, List1.Selected ( 0 )的值为 True ,表示列表框控件中第一项被选中,如为 False ,表示未被选中。 6 .MultiSelect 属性 该属性值表明是否允许在列表框控件中选择多项,它必须在设计时设置,运行时只能读取该属性。

MFC列表控件

列表控件(CListCtrl)和列表框控件(CListBox)有一定的区别,大家不要混淆。列表控件(List Control)用来成列地显示数据,其表项通常包括图标(Icon)和标签(Lable)两部分,它们分别提供了对数据的形象和抽象描述。 图像列表控件(CImageList)是相同大小图像的一个集合,每个集合中均以0为图像的索引序号基数,(可以把这些图标看成是以数组方式存储的),图像列表通常由大图标或位图构成,其中包含透明位图模式(实际上,所有的再一个图像列表中的图标都被存储在一个屏幕设备的位图中)。可以利用windows API来绘制、建立和删除图像,并能实现增加、删除、替换和拖动图像邓操作。图像列表控件提供了控制图像列表额基本方法,这些方法在Windows 95及以后版本才能实现。该控件是不可见的,通常与其他如CListBox、CComboBox、CComboBoxEx 以及CTabCtrl一起使用,为他们提供图标资源。 CImageList& ImageList建立图像控件对象结构,Create初始化图像列表并绑定对象,图像控件的建立方法如下BOOL Create(int cx,int cy,UINT nFlags,int nInitial,int nGrow); BOOL Create(UINT nBitmapID,int cx,int nGrow,COLORREF crMask); BOOL Create(LPCTSTR lpszBitmapID,int cx,int nGrow,COLORREF crMask); BOOL Create(CImageList& imageList1,int nImage1,CImageList& imagelist2,int nImage2,int dx,int dy); 其中各项参数的含义为:cx定义图像的宽度,单位为像素;cy定义图像的高度,单位为像素;nFlags确定建立图像列表的类型,可以是以下值的组合:ILC_COLOR、ILC_COLOR4、ILC_COLOR8、ILC_COLOR16、ILC_COLOR24、ILC_COLOR32、ILC_COLORDDB和ILS_MASK;nInitial用来确定图像列表包含的图像;nGrow 用来确定图像列表可控制的图像数量。 nBitmapID用来确定图像列表联系的位图标志值;crMask表示颜色屏蔽位;lpszBitmapID用来确定包含位图资源额标识串;imagellist1指向图像列表控件对象的一个指针;nImage1图像列表1中包含的图像数量;imagelist2指向图像列表控件对象的一个指针。 对于图像控件,同样不能单独使用,必须与列表控件、树控件和标签控件相互结合使用,下面分别介绍其具体应用技巧。 图像控件在列表控件中的应用技巧

VC MFC列表框(CListBox)控件

列表框控件简单应用 重复性的过程我就不详细讲明了,只给出类里面函数的解释。 int CListBox::AddString( LPCTSTR lpszItem );//添加一个项,lpszItem是项文本内容 int CListBox::InsertString( int nIndex, LPCTSTR lpszItem );//同上,只不过这个可以指定项位置(索引),由参数nIndex指定 int CListBox::GetCurSel( ) const;//获取当前选中项的索引,函数返回索引值 int CListBox::GetText( int nIndex,CString &rString ) const;//根据索引获得项文本 int CListBox::GetCount( ) const;//获取项数量 void CListBox::ResetContent( );//删除列表框所有的项 int CListBox::DeleteString( UINT nIndex );//根据项索引从列表框删除一个项 int CListBox::SetItemHeight( int nIndex, UINT cyItemHeight );//设置一个项的高度,注意:列表框具有 //LBS_OWNERDRAWVARIABLE风格才可以单独设置一个项的高度,否则是所有项的高度 自绘列表框 这里自绘要达到的效果,就是简单模仿一下QQ界面里类似列表框控件的那种效果,先往对话框里添加列表框控件. 然后再改一下列表框的属性,所有者绘制项选择固定,有字符串前面打上勾. 接着准备两张位图,一张用于列表框的背景,一张用于项选中时的背景,ID号分别为:IDB_BK、IDB_SELECTED 如下两张位图:

控件的分类

控件的分类;标准控件(工具箱自带的控件,不可删)、active控件、可插入对象(可添加到工具箱再使用,可删) 1、active控件:Animation控件和SSTab控件的应用 添加方法;a、工程------部件----(找到其文件名)b、单击右键------部件-----(找到其文件名) Active控件; 1、animation控件;Microsoft Windows Common Control-26.0文件名;MSCOMCT2.OCX 2、SSTab控件;Microsoft Tabbed Dialog Control 6.0文件名;TABCTL32.OCX 二、单选按钮(optionbutton)实现多选一 具有排他性;当其中一个被选中时其他的自行关闭, 例;钮分别有两个按为男和女,当选男时就不能同时选女 相应的属性设置; Coption显示按钮名称 Value;false(单选按钮未被选中状态),ture(单选按钮被选中状态) Enable;false(不可用,呈灰色),ture(单选按钮可用) Style(显示按钮风格,用于其外观的设置);0,为标准形式(即原始形态),1,为图形方式(单选按钮被选中状态图片装载在downpicture,单选按钮未被选中状态图片装载在picture,控件不可用装载在disablepicture) If Index = 0 Then Text1.FontName = "黑体" ElseIf Index = 1 Then Text1.FontName = "楷体" ElseIf Index = 2 Then Text1.FontName = "隶书" ElseIf Index = 3 Then Text1.FontName = "宋体" 总结;fontname=,fontsize= 其他的都加“” If Check1(0).Value = 1 Then对象 Text1.Font = ture ElseIfCheck1(1).Value = 1 Then Text1.FontItalic = ture ElseIfCheck1(2).Value = 1 Then Text1.FontBold = True ElseIfCheck1(3).Value = 1 Then Text1.FontUnderline = ture End If 常用方法:setfocus,move 例;option2.setfocus Command.move width/2,height/6,left/6,top/7

MFC ListBox控件用法介绍

列表控件可以看作是功能增强的ListBox,它提供了四种风格,而且可以同时显示一列的多中属性值。MFC中使用CListCtrl类来封装列表控件的各种操作。通过调用?BOOLCreate(DWORDdwStyle,constRECT&rect,CWnd*pParentWnd,UINTnID);创建一个窗口,dwStyle中可以使用以下一些列表控件的专用风格: ?LVS_ICONLVS_SMALLICONLVS_LISTLVS_REPORT这四种风格决定控件的外观,同时只可以选择其中一种,分别对应:大图标显示,小图标显示,列表显示,详细报表显示 ?LVS_EDITLABELS结点的显示字符可以被编辑,对于报表风格来讲可编辑的只为第一列。 ?LVS_SHOWSELALWAYS在失去焦点时也显示当前选中的结点 ?LVS_SINGLESEL同时只能选中列表中一项 首先你需要设置列表控件所使用的ImageList,如果你使用大图标显示风格,你就需要以如下形式调用:? CImageList*SetImageList(CImageList*pImageList,LVSIL_NORMAL);? 如果使用其它三种风格显示而不想显示图标你可以不进行任何设置,否则需要以如下形式调用:? CImageList*SetImageList(CImageList*pImageList,LVSIL_SMALL); 通过调用intInsertItem(intnItem,LPCTSTRlpszItem);可以在列表控件中nItem指明位置插入一项,lpszItem为显示字符。除LVS_REPORT风格外其他三种风格都只需

U8开发之单据列表控件

U8单据列表控件 摘要 单据列表控件是供业务单据展示列表数据以及编辑处理的,并且集成了部分单据列表公共按钮、快捷过滤、翻页功能。同时也支持直接通过单据列表编辑录入数据。 概念说明 公共按钮是指单据列表固有的一些操作,如:查询、条件格式设置、布局等等;快捷过滤是一种更加直接快速的常用查询项目过滤,主要区别在于可以直接在列表主界面录入常用过滤项目内容进行查询;翻页功能集成则是指列表控件自带了翻页处理,业务模块使用时可以不用专门处理翻页的逻辑。 目标 本文主要介绍单据列表控件的业务应用及相关注意事项,方便各类U8产品开发人员更好的使用高效开发产品。 文档内容 一、列表控件(V11.0)增加的特性: 1.集成【快捷过滤】功能;类似原来各列表界面里toolbar 上的查询\刷新\[滤设]功能。 查询按钮下拉查询方案:默认操作兼容原有功能。

查询支持方案和快捷条件详细设置: 【快捷过滤】相关的业务组代码调整:调整过滤对象的查询方法(UFGeneralFilter.FilterSrv.OpenFilter)调用,修改为调用过滤对象初始化方法

(UFGeneralFilter.FilterSrv. InitBaseVarValue),参数传递与过滤对象查询原来的方法(UFGeneralFilter.FilterSrv.OpenFilter)兼容。然后调用新单据列表控件的快捷过滤初始化方法(VouchList.InitFlt),把初始化好的过滤对象传入(如果没有过滤对象,也可以直接传入过滤对象ID或过滤对象名称+子系统号)。代码修改前后对比示例如下(灰色字体部分是已经被注释的修改前的代码,下同): …(引用的是服务协议列表代码修改模型) Set m_opub = CreateObject("UFGeneralFilter.FilterSrv") ' bSuccess = m_opub.OpenFilter(g_Login, "6729D410-233A-4674-A48A-2C34C17B82F6", "", "", ErrInfo) 'lliang_2011-11-22_[单据列表]:快捷过滤 bSuccess = m_opub.InitBaseVarValue(g_Login, "6729D410-233A-4674-A48A-2C34C17B82F6", "", "", ErrInfo) … Call VouchList.InitFlt (g_Login, m_opub, "", "", "", "", Err) 参数1:Login对象 参数2:过滤对象 参数3:条件的Key 参数4:过滤的名称 参数5:子产品号 参数6:返回的错误信息 返回值:如果返回为False表明出现失败 说明:你可以用参数2,忽略参数3、4、5或用参数3而忽略参数2和4、5或用参数4、5而忽略2和3. 注意事项:调用此初始化方法的时机要求在Form_Load事件里,目前大部分产品的过滤对象调用(m_opub.OpenFilter)都是在相应的类模块或其他非窗体模块处理,所以需要各模块根据实际情况把过滤对象变量有效传递到窗体然后在Form_Load事件里调用。推荐的方法是事前在窗体模块声明全局变量,然后在调用过滤对象的地方把已经初始化好的过滤对象暂时赋值给窗体的全局变量,最后在Form_Unload事件里即时的释放该全局变量。

VB列表框控件教案

VB控件—列表框 一教学目标: 知识目标: 1)掌握列表框控件的主要属性:list, MutiSelect,Listindex,Text的含义及用法2)学会运用列表框控件的主要方法:添加 additem,去除removeitem,清空clear 技能目标:通过完成项目,能利用新知识,编写简单程序,解决实际问题 情感目标: 1) 通过一个个步骤的实战演练,培养学生运用编程解决实际问题的能力,进一步激发 学生学习编程的爱好。 3)通过预防甲流的情境教学,提升学生对甲流的预防意识,并学习到更多预防甲流的知识。 二、教学重点:list,text属性,additem,removeitem,clear方法 三、教学难点:listindex,text的运用及区别 四、教学方法:项目教学法情境教学法 五、教学过程 大家好,听说我们学校刚评上国家级的职业学校,我这个县市级学校的老师今天能与我们同学一起学习交流感到非常荣兴,希望我所讲的能引起你们的共鸣,那老师也可以提升为国家级的级别了。 1.引入:(幻灯片1) 师:同学们都知道最近甲流疯狂爆发,人人自危,第二波甲流高潮也即将来临。预防甲流从我做起,我们平时不仅要勤洗手,常通风,多穿衣,养成良好的卫生习惯,更需结合饮食,防防患于未然,所以今天我们就来学习下利用VB控件里的列表框,做一个与甲流相关的项目。 2.新课: 师:先让老师展示下这个项目的成品(运行EXE可执行文件) (幻灯片2) 提问1:请同学们回答下左侧窗口中的哪些食品对预防甲流有益? 学生:回答 师:到低是否正确?答案让我们完成这个项目时再揭晓吧。 提问2:回到VB世界,同学们回答下这个界面包含哪些控件? 学生:标签,文本框,命令按钮…

VC++中 ListBox(列表框)的使用

VC++ ListBox(列表框)的使用 文档制作:@柳絮飘诗 ListBox的操作比较简单 1添加数据 声明控件变量的类别为Control,变量类型为CListBox,变量名为m_ListBox_Content. m_ListBox_Content.AddString(_T("123")); m_ListBox_Content.AddString(_T("汉字")); m_ListBox_Content.AddString(_T("English")); m_ListBox_Content.AddString(_T("!@#$%^&*()")); 2获取数据 CString s; m_ListBox_Content.GetText(1,s); MessageBox(s,_T("取得第2行数据"),MB_OK); s.ReleaseBuffer(); 将会得到"汉字"这个字符串,如果没有得到"汉字"这个字符串,是因为ListBox的Sort属性设为True了.设为False之后就按照你编写顺序写入(原来是这样 之前都没注意过) 3获取选择的数据 首先要将ListBox的Selection属性设置为Multiple; int nSel; nSel=m_ListBox_Content.GetCurSel(); CString s; m_ListBox_Content.GetText(nSel,s); MessageBox(s,_T("您选择的是"),MB_OK); s.ReleaseBuffer(); 4获取选择ListBox项的多个数据 首先要将ListBox的Selection的属性设置为Multiple int nSel = m_ListBox_Content.GetSelCount(); CArray< int,int& > arrayListSel; arrayListSel.SetSize(nSel); m_ListBox_Content.GetSelItems(nSel,arrayListSel.GetData()); CString s = _T(""); for( int i=0; i< nSel; i++ ) { m_ListBox_Content.GetText( arrayListSel[i], s); MessageBox(s,_T("您选择的是"),MB_OK); } 5双击删除所选项 添加一个ListBox的双击事件 m_ListBox_Content.DeleteString(m_ListBox_Content.GetCurSel()); //例子: CListBox *List; List=(CListBox*)GetDlgItem(IDC_LIST1); List -> AddString("AAA"); List -> SetCurSel(0);

https://www.wendangku.net/doc/9a8964734.html,中 ListBox列表框控件的使用方法

ListBox 控件允许用户从预定义的列表中选择一个或多个项。它与DropDownList 控件的不同之处在于,它不但可以一次显示多个项,而且(可选)还允许用户选择多个项。 一、属性属性值作用SelectionModeSingle|Multiple列表选择模式:单选|多选SelectedFalse|true是否为选中状态 二、示例 ListBox.aspx 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="ListBox.aspx.cs" Inherits="WebControls_ListBox" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.wendangku.net/doc/9a8964734.html,/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="https://www.wendangku.net/doc/9a8964734.html,/1999/xhtml"> <head runat="server">     <title></title>     <style type="text/css">         .style1         {             width: 293px;         }         .style2         {             width: 233px;         }     </style> </head> <body>     <form id="form1" runat="server">     <div>         <h5>1,单选列表框</h5>         省份:<asp:ListBox ID="lstProv"  runat="server">             <asp:ListItem>山东</asp:ListItem>             <asp:ListItem Selected="True">河北</asp:ListItem>             <asp:ListItem>内蒙</asp:ListItem>             <asp:ListItem>安徽</asp:ListItem>         </asp:ListBox>         <br />         <asp:Button ID="btnSubmit" runat="server" Text="提交"

ListBox控件的使用

CListBox是一种很常见的操作控件,用来从列表中选择相应的内容,这个控件以前没有用过,而且在一些书或教程上面讲解的很简单,无法从中看出如何来使用该控件,为了方便以后使用,这里先从MSDN上面的说明开始介绍起,把该控件的有关内容翻译一下,然后做一个程序来综合测试一下相关的功能 CListBox是从CWnd类继承下来的,对该类的总体介绍如下: 一、总体介绍: 一个列表框显示了一系列的项目,比如说文件名等,用户可以查看和选择操作。 在单选列表框中,用户只能选择一个项目,而对于多选列表框,一系列的项目都可以被选择,当用户选择项目后,该项目会被高亮显示,同时列表框将向其父窗口发送一个消息。 你可以用两种方法来创建一个列表框:从对话框个工具栏中拖动或者是直接用代码来创建。但用代码来直接创建时,先构造一个单选框的对象,然后调用Create方法创建一个列表框控件并将它和一个列表框对象关联起来。如果使用对话框工具来生成列表框,那么在对话框类中建立一个列表框的变量,然后使用DoDataExchange函数中的DDX_Control宏来连接该变量和控件(这一点在你用向导创建变量的时候会自动完成) 构造函数可以是一个一步过程,仅仅调用Create方法就可以了 如果你想处理列表框向其父窗口发送的消息(常常是CDialog类),那么你可以添加一个消息循环的入口和一个消息相应函数,格式如下: ON_Notification( id, memberFxn ) 这里id表示的是列表框子窗口的ID,而memberFxn则是父窗口中用来处理这个消息的消息响应函数,其原型如下: afx_msg void memberFxn( ); 下面的表格列举了有哪些消息能够发送给父窗口: 当你使用对话框工具箱来创建一个列表框时,列表框对象会在对话框关闭时自动销毁。 当你在一个窗口(WINDOW)中创建列表框时,你需要自行销毁其对象。如果你是在栈中创建列表框对象,那么它会自动销毁,而如果你在堆中创建列表框对象,比如采用new运算符,那么你必须调用delete方法来销毁该对象 如果你在列表框对象中申请了内存空间,你需要重载列表框的解构函数来释放内存 二、列表框的属性: 从上面的介绍中可以看到,列表框有不同的类型,这些都是通过设置属性来完成的,在VS2008上至少是这么来设置的,下面介绍一下几个关键的属性: 1)Selection属性:该属性用来指定列表框是否允许用户同时选择多个项,前面讲的多选列

可编辑的列表控件 (VS2010 修改版)

在界面上成组地显示含有多个数据项的数据集,是列表控件的主要用途。如下图所示,Windows资源管理器中文件列表的显示就是列表控件的一个典型应用。 从数据显示的角度看,列表控件的功能已经比较强大了(支持大图标、小图标、列表、详细资料等多种显示方式;支持排序、查找、定位、增删等)。但美中不足的是,它不支持数据项的编辑功能。在很多的实际应用中,需要在显示数据的同时,允许用户―就地‖对某些数据项进行修改。例如,在Windows资源管理器中,我们可以在浏览文件夹的同时修改其中任何一个文件的名字。这主要得益于Windows资源管理器中所使用的列表控件支持字段编辑功能。否则,简单的文件名修改也会变成一件很麻烦的事情。 因此,标准的列表控件只适合用于数据集的显示,而具有数据编辑功能的列表控件却可以在更广的范围里得到应用。本文重点介绍其实现过程。 1.基本原理 在列表控件上实现可编辑功能的原理非常简单,借助一个编辑框控件即可达到目的。具体步骤如下:①从 CListCtrl派生一个子类,并拦截某个意味着进入编辑状态的消息,获取需要编辑的数据项的相关信息。所拦截的消息通常选择鼠标消息(例如双击),这样更容易确定数据项在列表控件中的位置(行号、列号)及其所占的区域。②将一个编辑框控件移动到待编辑数据项所在的区域上,装入待编辑的数据并显示出来,供用户进行修改。③编辑结束后将修改后的数据返回给列表控件,让其在对应的子项上显示新的数据。 2.实现过程 1)在VC 6.0中,新建一个基于对话框的项目,名称:Exam02。 2)编辑对话框资源,删除IDOK 按钮和静态标签;保留IDCANCEL按钮,将其标题改为―退出‖;添加一个列表控件,将其显

列表控件(排序)

本讲主要介绍组合框(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类中添加一个函数:

VB列表框控件教案

VB控件—列表框 一教学目标: 知识目标: 1)掌握列表框控件的主要属性:list, MutiSelect,Listindex,Text的含义及用法2)学会运用列表框控件的主要方法:添加 additem,去除removeitem,清空clear 情感目标: 1) 通过一个个步骤的实战演练,培养学生运用编程解决实际问题的能力,进一步激发 学生学习编程的爱好。 3)通过预防甲流的情境教学,提升学生对甲流的预防意识,并学习到更多预防甲流的知识。 二、教学重点:list,text属性,additem,removeitem,clear方法 三、教学难点:listindex,text的运用及区别 四、教学方法:项目教学法情境教学法 五、教学过程 大家好,听说我们学校刚评上国家级的职业学校,我这个县市级学校的老师今天能与我们同学一起学习交流感到非常荣兴,希望我所讲的能引起您们的共鸣,那老师也可以提升为国家级的级别了。 1.引入:(幻灯片1) 师:同学们都知道最近甲流疯狂爆发,人人自危,第二波甲流高潮也即将来临。预防甲流从我做起,我们平时不仅要勤洗手,常通风,多穿衣,养成良好的卫生习惯,更需结合饮食,防防患于未然,所以今天我们就来学习下利用VB控件里的列表框,做一个与甲流相关的项目。2.新课: 师:先让老师展示下这个项目的成品(运行EXE可执行文件) (幻灯片2) 提问1:请同学们回答下左侧窗口中的哪些食品对预防甲流有益? 学生:回答 师:到低就是否正确?答案让我们完成这个项目时再揭晓吧。 提问2:回到VB世界,同学们回答下这个界面包含哪些控件? 学生:标签,文本框,命令按钮… 师:还有左右两测的框框,称为列表框 师:先请同学们打开自己D盘,一个“课堂项目”的文件夹,打开其工程文件,查瞧界面 提问3:这个界面与刚才老师展示的成品界面,有何区别? 学生:少两个列表框 师:所以根据程序设计步骤,我们接下来先设计未完成的界面,参考项目说明书:根据表格里的内容,在界面上补充两个列表控(Listbox),并修改其属性值 (幻灯片3,教师简单演示list属性文本的输入) 对象名称属性值

第5讲列表控件

第五讲列表控件 本讲主要介绍组合框(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类中添加一个函数:

相关文档