更新时间:2022-06-27 12:12
组合框的风格,取值如表所示。
CBS_AUTOHSCROLL 当用户在编辑区域键入字符时,列表框自动滚动,使当前项的名称与键入的字符排序相同
CBS_DROPDOWN 创建一个下拉式组合框
CBS_DROPDOWNLIST 创建一个下拉式列表框
CBS_HASSTRINGS 让应用程序能够使用GetText取得组合框里的文本
CBS_OEMCONVERT 把输入的文本将从ANSI码转换成OEM码,然后又转换成ANSI码;这样的目的是保证函数AnsiToOem的正确调用
CBS_OWNERDRAWFIXED 父窗口负责重画组合框里的各项,并使各项的高度一致
CBS_OWNERDRAWVARIABLE 父窗口负责重画组合框里的各项,各项的高度不一致
CBS_SIMPLE 组合框显示所有的项,当前的选项在编辑区域中显示
CBS_SORT 自动排序
CBS_DISABLENOSCROLL 组合框有垂直滚动条,当组合框的项不足时,滚动条激活;没有该风格,则滚动条隐藏
CBS_NOINTEGRALHEIGHT 指定组合框的大小由程序精确控制,通常组合框的大小由组合框里项的数目决定
创建一个组合框只需把CreateWindow的第一个参数设置为ComboBox,然后取表中的值即可。组合框创建后,需要初始化,即通过向组合框发送CB_ADDSTRING增加最初的项,这类似于列表框。如果没有定义CBS_SORT风格,新增的项将被增加到组合框的末尾。
应用程序的父窗口主要通过 WM_COMMAND消息与组合框通信,应用程序可以用CB_FINDSTRINGEXACT搜索指定的项,还可以发送CB_DELETESTRING删除指定的项,当需要删除所有的项时,发送消息CB_RESETCONTENT即可。
组合框的编辑区域用来显示当前选中的项或者编辑组合框里没有的项。可以用CB_LIMITTEXT来限制输入文本的大小;为了获得编辑区域的文本,可发送CB_GETLBTEXT或者WM_GETTEXT消息,这样就把文本复制到指定的字符串中,当需要设置编辑区域的文本时,只需要发送WM_SETTEXT消息。
Windows API为组合框提供了文件显示和搜索的功能,它们主要通过函数DlgDirListComboBox和DlgDirSelectComboBox来实现。
本节的应用程序中将用到这些函数,并把文件的内容显示在窗口里。
CB_ADDSTRlNG 增加一项
CB_DELETESTRING 删除指定的项
CB_DIR 发送搜索目录的消息
CB_FINDSTRING 搜索指定的项
CB_FINDSTRINGEXACT 精确搜索指定的项
CB_GETCOUNT 得到组合框中项的数目
CB_GETCURSEL 得到当前选中项的序号
CB_GETEDITSEL 得到编辑区域选中的文本
CB_GETLBTEXT 得到编辑区域的文本
CB_GETLBTEXTLEN 得到编辑区域中文本的长度
CB_LIMITTEXT 发送限制编辑区域文本的消息
CB_RESETCONTENT 删除所有的项
CB_SELECTSTRING 选中指定的字符串
CB_SETCURSEL 将光标设置在指定的位置
CB_SETDROPPEDWIDTH 设置下拉的宽度
CB_SETEDITSEL 选取编辑区域的文本
CBN_CLOSEUP 关闭组合框
CBN_DBLCLK 发送用户双击组合框中项的消息
CBN_DROPDOWN 下拉时发送消息
CBN_EDITCHANGE 发送编辑区域改变的消息
CBN_EDITUPDATE 发送编辑区域改变的消息,但在更新之前发送
CBN_ERRSPACE 发送内存不够的消息
CBN_KILLFOCUS 当组合框失去输入焦点时发送该消息
CBN_SETFOCUS 设置输入焦点