打印

ucgui 各控件间的焦点 ,通过外部物理导航按键 任意切换

[复制链接]
5867|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mozun1|  楼主 | 2013-6-4 14:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题,小弟在一个对话框中创建了一些 EDIT 控件,想使用键盘的上下左右键来切换他们的输入焦点,(例如我按上键,焦点切换到上一个EDIT控件或者button,下睑则反之,总之切换焦点的顺序能按照自己的意愿,而不是由ucGUI控制)但是在对话框初始化后,ucGUI 自动的把输入焦点设置成其中一个EDIT控件,而且只能使用 GUI_KEY_TAB 这个按键信息在它们之间切换,我想按照自己的意愿根据自己的键盘来切换输入焦点,于是想在对话框的回调函数中处理,但是传过去的按键信息全发送给初始化时被ucGUI定为输入焦点的EDIT控件,导致我不能在对话框的回调中收到我底层键盘函数发送的键盘信息。我试图在发送键盘信息时把输入焦点设置为对话框,但是失败了,不知道怎么实现。希望各位大虾指点一二。

相关帖子

沙发
mozun1|  楼主 | 2013-6-6 09:00 | 只看该作者
哎  无人回答啊,貌似我自己弄出来了

使用特权

评论回复
板凳
whaidong123| | 2013-6-13 22:02 | 只看该作者
楼主,是怎么解决的?我的建了2个按钮和3个EDIT,外部按键 TAB键按下的时候,我通过发送GUI_SendKeyMsg(GUI_KEY_TAB,1)来实现控件之间切换的,默认聚焦在第一个按键上,但是按下TAB按键只能从第一个按钮切换到第二个按钮,也能切换到第一个EDIT0上,但是再按下就不能往下一个EDIT1切换了,整个就死机了,请楼主指导!?感激不尽!

使用特权

评论回复
地板
610095871| | 2013-7-15 17:18 | 只看该作者
在创建窗体或控件的时候,将其句柄存放到一个缓存中,之后按键处理,从缓存中取出句柄,调用设置焦点函数,将其设置为句柄。最好在设置焦点的时候,先调用wm的函数判断下这个句柄是不是一个窗体。
在对话框中,1没创建窗体框架,那么当传入按键消息的时候讲对话框设置为焦点窗体,2如果创建了窗体框架的话就调用WM_GetClientWindow 将返回的句柄设置为焦点窗体之后在传入按键消息,另外对于对话框可以讲资源列表中的ID建一个缓存,通过Id获取其句柄,之后在回调函数中的Key处理中设置聚焦。

以上全是个人想法 没有实践过
UCGUI源码学习中---Q群295214484

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

22

帖子

0

粉丝