OpenEdv-开源电子网

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

ucgui结合物理键盘,下键按下后,焦点不会相应变化

[复制链接]

28

主题

89

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
221
金钱
221
注册时间
2014-9-30
在线时间
0 小时
发表于 2014-10-23 14:14:47 | 显示全部楼层 |阅读模式
5金钱
中断的代码片段:
[mw_shl_code=c,true]GPIO_ResetBits(KEYBOARD_ROW_PORT, KEYBOARD_ROW_BASE << i); if(!GPIO_ReadInputDataBit(KEYBOARD_COL_PORT, KEYBOARD_COL_2)) { g_key_param.msg.col = KEYBOARD_COL_2; g_key_param.msg.code = GUI_KEY_DOWN; OSMboxPost(g_key_param.mbox, (void *)&g_key_param.msg); break; }[/mw_shl_code]
回调函数代码:
[mw_shl_code=c,true]static void cbSubMenuDialog(WM_MESSAGE* pMsg) { WM_HWIN hWin; BUTTON_Handle hButton; hWin=pMsg->hWin; switch(pMsg->MsgId) { case WM_INIT_DIALOG: GUI_SetFont(&GUI_Font8x16); GUI_SetBkColor(GUI_BLUE); hButton = WM_GetDialogItem(hWin, GUI_ID_BUTTON1); WM_SetFocus(hButton); //聚焦第二个button break; case WM_KEY: switch(((WM_KEY_INFO*)(pMsg->Data.p))->Key) { case GUI_KEY_DOWN: hButton = WM_GetDialogItem(hWin, GUI_ID_BUTTON2); WM_SetFocus(hButton); break; default: break; } default: WM_DefaultProc(pMsg); } }[/mw_shl_code]
问题出在哪里?
[mw_shl_code=c,true]void SubMenu(void) { GUI_ExecDialogBox(SubMenuDialog, GUI_COUNTOF(SubMenuDialog), &cbSubMenuDialog, 0 , 0 , 0 ); }[/mw_shl_code]

假如我的主函数是用阻塞方式建立的对话框,我想在主函数里聚焦到其他的button,我该如何实现,因为我发现,不管我把  WM_SetFocus放到哪里,都不会聚焦到相应的button,该如何处理呢?

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

使用道具 举报

28

主题

1489

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1656
金钱
1656
注册时间
2013-7-24
在线时间
1 小时
发表于 2014-10-23 17:54:36 | 显示全部楼层
先不看其他逻辑,至少发的是UP,响应的DOWN。
于20150522停用该账号:http://www.microstar.club
回复

使用道具 举报

17

主题

293

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
388
金钱
388
注册时间
2012-12-26
在线时间
1 小时
发表于 2014-10-23 19:46:12 | 显示全部楼层
中断函数里发送的消息里面木有GUI_KEY_DOWN
回复

使用道具 举报

28

主题

89

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
221
金钱
221
注册时间
2014-9-30
在线时间
0 小时
 楼主| 发表于 2014-10-24 09:49:35 | 显示全部楼层
回复【2楼】styleno1:
---------------------------------
。。。。。。。。。。那是我截取的代码片段截取错误了,实际上是上下左右四个,只是列出来的错误了,那逻辑上有啥错误还请赐教。

假如我的主函数是用阻塞方式建立的对话框,我想在主函数里聚焦到其他的button,我该如何实现,因为我发现,不管我把  WM_SetFocus放到哪里,都不会聚焦到相应的button,该如何处理呢?
回复

使用道具 举报

28

主题

89

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
221
金钱
221
注册时间
2014-9-30
在线时间
0 小时
 楼主| 发表于 2014-10-24 09:50:11 | 显示全部楼层
回复【4楼】L00p:
---------------------------------
额,我截取的代码片段错误了,那其他方面有啥错误没有?
或者是用什么函数在中断里发送这个键值信息?

假如我的主函数是用阻塞方式建立的对话框,我想在主函数里聚焦到其他的button,我该如何实现,因为我发现,不管我把  WM_SetFocus放到哪里,都不会聚焦到相应的button,该如何处理呢?

我都搞了好几天了,求指点啊,大神们
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-23 04:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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