OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4469|回复: 2

WM_SetFocus的焦点设置问题

[复制链接]

24

主题

62

帖子

0

精华

初级会员

Rank: 2

积分
148
金钱
148
注册时间
2017-9-18
在线时间
40 小时
发表于 2017-11-8 14:11:56 | 显示全部楼层 |阅读模式
5金钱
最近做项目的时候,使用了物理的机械按键来处理界面,每次开一个窗口使用WM_SetFocus来设定焦点,这样之后就可以响应驱动来的按键消息了。但是第一个窗口是可以接受到WM_KEY的消息的。当我进入第二个窗口的时候,我先销毁第一个窗口,再打开第二个窗口,设定焦点。但是按键消息整个GUI都不响应了。于是我查了WM_SetFocus的API。说返回是0的话,是可以设置焦点的。返回是非0的话,就是焦点设置失败。但是问题又来了。就是我调试发现,第一个窗口是可以响应按键消息!但是返回值是1.就是焦点设置失败的。第二个窗口不可以响应消息,但是返回也是1.

//------------------------------第一个窗口是这么设置的
               BUTTON_SetDefaultSkin(BUTTON_SKIN_FLEX);                           
                m_HListBox.hFrame = GUI_CreateDialogBox(_Measure_DialogCreate, GUI_COUNTOF(_Measure_DialogCreate), _cb_Measure_Dialog,WM_HBKWIN, 0, 0);
                acoff = WM_SetFocus(m_HListBox.hFrame);

//---------------------------第二个窗口是这么设置的
                BUTTON_SetDefaultSkin(BUTTON_SKIN_FLEX);                           

                 m_HEditIn.hFrame = GUI_CreateDialogBox(_AdsorbedCreate,
                                GUI_COUNTOF(_AdsorbedCreate),
                                _cbAdsorbedDose_Dialog, WM_HBKWIN, 0, 0);
                 acof = WM_SetFocus(m_HEditIn.hFrame);

//基本是一样的。为什么第二个窗口回调无法响应按钮消息啊?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165353
金钱
165353
注册时间
2010-12-1
在线时间
2108 小时
发表于 2017-11-10 01:40:51 | 显示全部楼层
回复

使用道具 举报

24

主题

62

帖子

0

精华

初级会员

Rank: 2

积分
148
金钱
148
注册时间
2017-9-18
在线时间
40 小时
 楼主| 发表于 2017-11-12 16:52:38 | 显示全部楼层
我又来在每个资源列表框,加了一个button之后,设置焦点就有效了。不知道这是为什么?但是用这种当时的确解决了问题。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-27 01:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表