按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
消息 含义
CBN_CLOSEUP 组合框的列表框组件被关闭,简易式组合框不会发出该消息
CBN_DBLCLK 用户在某列表项上双击鼠标,只有简易式组合框才会发出该消息
CBN_DROPDOWN 组合框的列表框组件下拉,简易式组合框不会发出该消息
编辑框的内容被用户改变了,与 CBN_EDITUPDATE 不同,该消息是
CBN_EDITCHANGE 在编辑框显示的正文被刷新后才发出的,下拉列表式组合框不会发出
该消息
在编辑框准备显示改变了的正文时发送该消息,下拉列表式组合框不
CBN_EDITUPDATE
会发出该消息
CBN_ERRSPACE 组合框无法申请足够的内存来容纳列表项
表明用户的选择应该取消,当用户在列表框中选择了一项,然后又在
CBN_SELENDCANCEL
组合框控件外单击鼠标时就会导致该消息的发送
用户选择了一项,然后按了回车键或单击了下滚箭头,该消息表明用
CBN_SELENDOK
户确认了自己所作的选择
CBN_KILLFOCUS 组合框失去了输入焦点
CBN_SELCHANGE 用户通过单击或移动箭头键改变了列表的选择
CBN_SETFOCUS 组合框获得了输入焦点
组合框控件封装在 MFC 的 CboBox 类中。需要指出的是,虽然组合框是编辑框和列
表框的组合,但是 CboBox 类并不是 CEdit 类和 CListBox 类的派生类,而是 CWnd 类的
派生类。
CboBox 的成员函数 Create 负责创建组合框,该函数的声明如下:
BOOL Create(DWORD dwStyle;const RECT& rect;CWnd* pParentWnd;UINT nID);
参数 dwStyle 指定了组合框控件的风格,如表 5…13 所示,dwStyle 可以是这些风格的组
合。rect 说明的是列表框组件下拉后组合框的位置和尺寸。pParentWnd 指向父窗口,该参数
不能为 NULL 。nID 则说明了控件的 ID 。如果创建成功,该函数返回 TRUE,否则返回 FALSE 。
·123 ·
…………………………………………………………Page 133……………………………………………………………
Visual C++ 6。0 程序设计从入门到精通
表 5…13 组合框的风格
风格 含义
CBS_AUTOHSCROLL 使编辑框组件具有水平滚动的风格
CBS_DROPDOWN 指定一个下拉式组合框
CBS_DROPDOWNLIST 指定一个下拉列表式组合框
CBS_HASSTRINGS 指定一个含有字符串的自绘式组合框
使编辑框组件中的正文可以在 ANSI 字符集和 OEM 字符集之间相互
CBS_OEMCONVERT
转换。这在编辑框中包含文件名时是很有用的
指定自绘式组合框,即由父窗口负责绘制列表框的内容,并且列表
CBS_OWNERDRAWFIXED
项有相同的高度
CBS_OWNERDRAWVARIABLE 指定自绘式组合框,并且列表项有不同的高度
CBS_SIIMPLE 指定一个简易式组合框
CBS_SORT 自动对列表框组件中的项进行排序
CBS_DISABLENOSCROLL 使列表框在不需要滚动时显示一个禁止的垂直滚动条
组合框的尺寸由应用程序而不是 Windows 指定,通常,由 Windows
CBS_NOINTEGRALHEIGHT
指定尺寸会使列表项的某些部分隐藏起来
CBS_SIMPLE、CBS_DROPDOWN 和 CBS_DROPDOWNLIST 分别用来将组合框指定为
简易式、下拉式和下拉列表式。一般还要为组合框指定 WS_CHILD 、WS_VISIBLE 、
WS_TABSTOP 、WS_VSCROLL 和 CBS_AUTOHSCROLL 风格。如果要求自动排序,还应指
定 CBS_SORT 风格。
对于用对话框模板编辑器创建的组合框控件,可以在控件的属性对话框中指定上表中列
出的控件风格。例如,在属性对话框中选择 Dropdown ,相当于指定了 CBS_DROPDOWN 。
5。6。2 CboBox 类的主要成员函数
CboBox 类的成员函数较多。其中常用的函数可分为两类,分别针对编辑框组件和
列表框组件。可以想象,这些函数与 CEdit 类和 CListBox 类的成员函数肯定有很多类似之处,
但它们也会有一些不同的特点。如果读者能从“组合框是由编辑框和列表框组成”这一概念
出发,就能够很快的掌握 CboBox 的主要成员函数。
事实上,绝大部分 CboBox 的成员函数都可以看成是 CEdit 或 CListBox 成员函数的
重现。函数的功能、函数名,甚至函数的参数都是类似的。为了方便学习,下面在介绍
CboBox 类的成员函数时,采用了与对应的 CEdit 或 CListBox 成员函数相比较的做法。
在成员函数的列表中,分别列出了成员函数名、对应的 CEdit 或 CListBox 成员函数以及二者
之间的不同之处。
针对编辑框组件的主要成员函数如表 5…14 所示。该表的前 3 个函数实际上是 CWnd 类的
成员函数,可用来查询和设置编辑框组件。
表 5…14 针对编辑框组件的 CboBox 成员函数
成员函数名 对应的 CEdit 成员函数 与 CEdit 成员函数的不同之处
CWnd::GetWindowText CWnd::GetWindowText 无
CWnd::SetWindowText CWnd::SetWindowText 无
CWnd::GetWindowTextLength CWnd::GetWindowTextLength 无
GetEditSel GetSel 仅函数名不同
SetEditSel SetSel 函数名不同,且无 bNoScroll 参数
Clear Clear 无
·124 ·
…………………………………………………………Page 134……………………………………………………………
第 5 章 常用控件
续表
成员函数名 对应的 CEdit 成员函数 与 CEdit 成员函数的不同之处
Copy Copy 无
Cut Cut 无
Paste Paste 无
与 CListBox 的成员函数类似,针对列表框组件的 CboBox 成员函数也可以分为 3 类。
表 5…15 列出了用于插入和删除列表项的成员函数,表 5…16 列出了用于搜索、查询和设置列
表框的成员函数,与列表项的选择有关的成员函数如表 5…17 所示。需要指出的是,如果这些
函数出错,则返回 CB_ERR,而不是 LB_ERR 。另外,排序的组合框具有的是 CBS_SORT 风
格,而不是 LBS_SORT 。
表 5…15 用于插入和删除列表项的 CboBox 成员函数
成员函数名 对应的 CListBox 成员函数 与 CEdit 成员函数的不同之处
AddString AddString 无
InsertString InsertString 无
DeleteString DeleteString 无
ResetContent ResetContent 无
Dir Dir 无
表 5…16 用于搜索、查询和设置列表框的 CboBox 成员函数
成员函数名 对应的 CListBox 成员函数 与 CEdit 成员函数的不同之处
GetCount GetCount 无
FindString FindString 无
GetLBText GetText 仅函数名不同
GetLBTextLen GetTextLen 仅函数名不同
GetItemData GetItemData 无
SetItemData SetItemData 无
GetTopIndex GetTopIndex 无
SetTopIndex SetTopIndex 无
表 5…17 与列表项的选择有关的 CboBox 成员函数
成员函数名 对应的 CListBox 成员函数 与 CEdit 成员函数的不同之处
GetCurSel GetCurSel 无
新选的列表项的内容会被拷贝到
SetCurSel SetCurSel
编辑框组件中
新选的列表项的内容会被拷贝到
SelectString SelectString
编辑框组件中
5。7 图片(Picture )控件
图片(Picture )控件实际上是一种静态文本(CStatic )控件,可以通过在创