如何实现下拉框中输入字母快速定位?

tx117 2010-05-31 01:54:55
最近接手别人做的一个VC项目中有一个问题请教,
程序中使用
hWnd = CreateWindow(_T("ComboBoxEx32") ,_T("list"), WS_CHILD|WS_VISIBLE|CBS_DROPDOWNLIST|CBES_EX_NOEDITIMAGE,
ListRect.left,ListRect.top,ListRect.right - ListRect.left,ListRect.bottom - GameListRect.left,hWndParent, NULL, hInst, NULL);
来创建了一个下拉框。
然后使用SendMessage(hWnd,CBEM_INSERTITEM,0,(LPARAM)&cbexitem);来向这个下拉框中增加项目。

假设下拉框中的项目有:
A-XXXX
B-XXXX
C-XXXX
D-XXXX
现在的问题是想要支持在下拉框上面输入字母来快速选中下拉框中的一条记录,
例如输入C,那么就默认选中C-XXXX这一条记录,
请问如何实现这种功能?

先谢谢各位了。
...全文
258 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
liwenwei1658 2010-11-26
  • 打赏
  • 举报
回复
combobox 拖的控件如何实现你说的功能啊?
iqyely 2010-06-01
  • 打赏
  • 举报
回复
学习下。
tx117 2010-06-01
  • 打赏
  • 举报
回复
谢谢楼上的兄弟,确实用ComboBox可以支持键盘事件。
难道是ComboBoxEx的问题?
那就用ComboBox算了,结贴。
zwfgdlc 2010-05-31
  • 打赏
  • 举报
回复
自绘的,能正常使用。

HWND hWnd = ::CreateWindow(_T("COMBOBOX") , _T("list"), WS_CHILD|WS_VISIBLE|CBS_DROPDOWNLIST|CBES_EX_NOEDITIMAGE,150,150,150,50, m_hWnd, NULL, theApp.m_hInstance, NULL);

::SendMessage(hWnd,CB_INSERTSTRING,-1,(LPARAM)TEXT("A选项"));
::SendMessage(hWnd,CB_INSERTSTRING,-1,(LPARAM)TEXT("B选项"));
::SendMessage(hWnd,CB_INSERTSTRING,-1,(LPARAM)TEXT("C选项"));
::SendMessage(hWnd,CB_INSERTSTRING,-1,(LPARAM)TEXT("D选项"));
tx117 2010-05-31
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zwfgdlc 的回复:]
comboxEx没试过,只试过combobox能正常使用。
[/Quote]
你说combobox能正常使用是用的SDK的CreateWindow方式还是拖的控件?
tx117 2010-05-31
  • 打赏
  • 举报
回复
楼上的大哥,请问:
combobox能支持SendMessage(hWnd,CBEM_INSERTITEM,0,(LPARAM)&cbexitem)设置项目吗?
combobox可以自动支持键盘输入字母快速定位记录吗?
soswaidao 2010-05-31
  • 打赏
  • 举报
回复
combobox就够用了,ComboBoxEx用不着
zwfgdlc 2010-05-31
  • 打赏
  • 举报
回复
comboxEx没试过,只试过combobox能正常使用。
tx117 2010-05-31
  • 打赏
  • 举报
回复
楼上的大哥,我就是用不了键盘输入才来求助的啊。
能帮我看看程序有什么地方不对吗?
是不是创建ComboBox时候的参数不对?
zwfgdlc 2010-05-31
  • 打赏
  • 举报
回复
combobox本来就支持啊,
tx117 2010-05-31
  • 打赏
  • 举报
回复
请大家帮帮忙啊,
是不是ComboBoxEx32本身是不支持键盘事件的?
是不是要在消息处理程序里面处理键盘消息然后自己定位记录?

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧