初级会员
- 积分
- 148
- 金钱
- 148
- 注册时间
- 2017-9-18
- 在线时间
- 40 小时
|
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);
//基本是一样的。为什么第二个窗口回调无法响应按钮消息啊?
|
|