组合框查看源代码讨论查看历史
组合框 |
组合框的风格取值定义了组合框的具体属性,包括是否自动排序,是否有滚动条。
简介
组合框的风格,取值如表所示。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 删除所有的项。[1]