DROP DOWN风格的COMBO BOX控件,如何做到在EDIT CONTROL中自行输入文本并按回车后输入的文本能显示在另一STATIC控件中?

scmcopew 2005-07-09 10:22:29
有一个DROP DOWN风格的COMBO BOX控件,因为是DROP DOWN风格的,所以用户既能在LIST BOX中选择,也可以在EDIT CONTROL中自行输入文本,但是输入完毕后按回车没有任何反应。请问如何做到在EDIT CONTROL中自行输入文本后按回车,输入的文本能显示在另一STATIC控件中?
...全文
261 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
scmcopew 2005-07-11
  • 打赏
  • 举报
回复
搞定了,原来在组合框的子EDIT窗口以上的所有对话框窗口中要重载PreTranslateMessage函数,因为只要是对话框,就会将回车消息截下自己处理,而不会传递给下一窗口。并且RETURN值必须为FALSE,即不翻译消息,直接传递给下一窗口,如果为TRUE,就会翻译消息后退出消息传递。我已经完全理解了,谢谢!
scmcopew 2005-07-11
  • 打赏
  • 举报
回复
lbird谢谢你的回答,我按照你的回答重载了组合框的子EDIT窗口以上的所有窗口的PreTranslateMessage函数,并且在函数中加上了如下代码:
if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_RETURN)
return TRUE;
但是,按回车后还是没有反应,不知道为什么?
另外,你说的“重载PreTranslateMessage”,是指重载哪一个窗口的PreTranslateMessage?
lbird 2005-07-11
  • 打赏
  • 举报
回复
子类化组合框的子EDIT窗口,处理键盘消息。
对话框会默认处理回车消息,所以EDIT会收不到。要解决这个问题,你可以重载PreTranslateMessage消息来拦截回车消息。,如果是回车消息,则不交给默认处理函数
scmcopew 2005-07-10
  • 打赏
  • 举报
回复
我得程序是一个对话框,其中有一个REPORT风格的LIST CONTROL,其中单击每个SUBITEM能显示出DROP DOWN风格的COMBO BOX,这个COMBO BOX能让用户通过LIST BOX中的ITEM,也可以自行编辑文本。现在的问题就是自行编辑文本的时候如何响应回车消息?就是说用户输入文本结束后单击回车,COMBO BOX消失,输入的文本显示在LIST CONTROL的SUBITEM中
lbird 2005-07-10
  • 打赏
  • 举报
回复
如果是对话框,响应IDOK才有用,也比较简单,
先从组合框取得文本,再设置到STATIC中
Hendy_So 2005-07-10
  • 打赏
  • 举报
回复
响应IDOK命令。

15,978

社区成员

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

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