2009年1月重庆理工大学计算机科学与技术系共9页第1页第10章MFC中Windows标准控件的应用重点1.Windows标准控件的使用2.对话框通用控件的使用2009年1月重庆理工大学计算机科学与技术系共9页第2页10.1概述•每个控件都是一个小的窗口,所以控件具有通用的窗口属性;窗口类名含义BUTTON代表一个按钮的小长方形的子窗口(按钮控件)COMBOBOX代表一个选择列表框的子窗口(组合框控件)EDIT代表一个接收用户输入的文本输入子窗口(编辑框控件)LISTBOX代表字符串列表的子窗口(列表框控件)SCROLLBAR代表一个滚动条的子窗口(滚动条控件)STATIC代表一个显示静态文本的子窗口(静态控件)系统预定义的控件窗口类•控件通过发送WM_COMMAND消息进行相关的通信。不同控件类型发送消息的通知代码不一样,教材P198表10-2列出了不同的控件类型发送的通知代码。2009年1月重庆理工大学计算机科学与技术系共9页第3页10.2按钮控件及其应用•按钮控件分为:普通按钮(又分为普通按钮和默认普通按钮)、单选按钮、复选框按钮、组框按钮、自绘按钮等。•MFC的CButton类封装了按钮控件的相关操作;•用于按钮控件消息映射的宏有ON_BN_CLICKED、ON_BN_DBLCLICKED和ON_COMMAND;•CButton的父类为CWnd,所以按钮控件对象也可以使用类CWnd中通用的窗口操作函数;10.2.1按钮控件的使用10.2.2按钮控件的使用•参见例题10-12009年1月重庆理工大学计算机科学与技术系共9页第4页10.3滚动条控件及其应用•滚动条在形式上分为窗口滚动条和子窗口滚动条两种。窗口滚动条由系统创建,位置和尺寸固定。子窗口滚动条由应用程序创建,位置和尺寸由程序员确定。•滚动条类CScrollBar是CWnd的直接派生类,它同时继承了CWnd的所有功能;•CScrollBar中提供了操纵滚动条的成员函数,参见教材P204表10-6;•滚动条在功能上分为垂直滚动条与水平滚动条,分别实现窗口内容纵向和横向的滚动;•常用滚动条动作标识及其说明参见教材P205表10-7。10.3.1滚动条类的结构及其方法10.3.2滚动条类编程实例•参见例题10-22009年1月重庆理工大学计算机科学与技术系共9页第5页10.4列表框控件•列表框是一个矩形窗口,在矩形窗口中包含一系列的字符串,也可以包含其他的数据元素,用户可以根据需要选择列表框中的元素。•列表框允许用户在列表框中选择一项或多项,因此有两种样式的列表框,即单选项列表框和多选项列表框;•列表框控件在MFC中对应的类为CListBox;•通常情况下列表框作为某一对话框的子窗口出现,这个对话框相当于列表框的父窗口,列表框的消息都发往这个父窗口;10.4.1列表框的类结构10.4.2列表框控件类的成员函数•CListBox类的成员函数分为通用的成员函数(参见教材P208表10-10)、处理单选列表框、多选列表框(参见教材P208表10-11)、特定字符串的成员函数(参见教材P208表10-12)和虚拟成员函数等。2009年1月重庆理工大学计算机科学与技术系共9页第6页10.4.3列表框和应用程序之间的消息传递•程序创建列表框控件后,可通过接收控件发出的消息得知用户的请求(通常由列表框的父窗口来接收控件发出的消息),应用程序也可以向列表框发送消息来对其进行操作;•当用户与列表框交互时,列表框向应用程序发出WM_COMMAND消息。该消息的字参数(wParam)的高字节标识列表框动作的消息通知码(参见教材P210表10-13),低字节为控件标识值。10.4.4列表框应用举例•参见例题10-32009年1月重庆理工大学计算机科学与技术系共9页第7页10.5编辑框控件•编辑框控件有两种:单行和多行编辑框控件。•MFC在类CEdit中提供标准的Windows编辑框控件服务,CEdit是CWnd类直接派生来的,它具有CWnd的所有功能;•编辑框控件默认模式是单行的,通用成员函数参见教材P211表10-14;•当编辑框控件具有EX_MULTILINE样式时,表示该控件是一个多行编辑框控件,它的成员函数参见教材P211表10-15。10.5.1编辑框控件简介10.5.2编辑框与应用程序间的消息传递•应用程序创建编辑框控件后,可通过接收控件发出的消息得知用户的请求,并可通过向编辑框发送消息对其进行操作;•编辑框通过向其父窗口发送WM_COMMAND消息通知应用程序用户的交互信息。该消息的字参数(wParam)的低字节为控制标识,高字节标识编辑框动作的消息通知码。常用的通知码及其说明见教材P213表10-16。•编辑框应用实例:参见例题10-4。2009年1月重庆理工大学计算机科学与技术系共9页第8页10.6组合框控件•组合框是两种预定义窗口的组合形式。•常见的组合框是列表框以隐藏形式出现在编辑框下,用户单击编辑框右侧的箭头时弹出列表框;•在MFC中操作组合框的类为CComboBox;•组合框的常见样式参见教材P215表10-19。10.6.1组合框类的机构及组合框的特点10.6.2组合框与应用程序间的消息传递•应用程序创建组合框后,可通过接收控件发出的消息得知用户的请求,并可通过向组合框控件发送消息对其进行操作;•组合框通过向其父窗口发送WM_COMMAND消息通知应用程序用户的交互信息。该消息字参数(wParam)的低字节为控件标识,高字节为标识组合框动作的消息通知码。常用的通知码及其说明见教材P215表10-20。•组合框应用实例:参见例题10-5。2009年1月重庆理工大学计算机科学与技术系共9页第9页10.7对话框通用控件10.7.1Picture控件的使用10.7.2Spin控件的使用10.7.3Progress控件的使用10.7.4Slider控件的使用•参见例题10-6。10.7.5DateTimePicker控件的使用10.7.5ListControl控件的使用10.7.7TreeControl控件的使用