|

楼主 |
发表于 2018-3-5 15:34:28
|
显示全部楼层
@eric2013 硬汉哥,我看了你的STemwin V6 中的实体按键操作控件(裸机)的代码,在MainTask.c中有一段代码是void _cbTimer(GUI_TIMER_MESSAGE * pTM)
{
uint8_t ucKeyCode;
switch (pTM->Context)
{
case 0x01:
ucKeyCode = bsp_GetKey();
if(ucKeyCode != KEY_NONE)
{
switch (ucKeyCode)
{
case KEY_DOWN_K3: /* K3键按下,实现TAB按键的功能*/
GUI_SendKeyMsg(GUI_KEY_TAB, 1);
break;
case JOY_DOWN_U: /* 摇杆UP键按下,实现删除光标后的字符 */
GUI_SendKeyMsg(GUI_KEY_DELETE, 1);
break;
case JOY_DOWN_D: /* 摇杆DOWN键按下,实现删除光标前的字符 */
GUI_SendKeyMsg(GUI_KEY_BACKSPACE, 1);
break;
case JOY_DOWN_L: /* 摇杆LEFT键按下,实现光标左移 */
GUI_SendKeyMsg(GUI_KEY_LEFT, 1);
break;
case JOY_DOWN_R: /* 摇杆RIGHT键按下,实现光标右移 */
GUI_SendKeyMsg(GUI_KEY_RIGHT, 1);
break;
case JOY_DOWN_OK: /* 摇杆OK键按下,发送GUI_KEY_ENTER消息,会被聚焦的按钮或者
WM_KEY消息所接受并处理,功能都是关闭对话框。*/
GUI_SendKeyMsg(GUI_KEY_ENTER, 1);
break;
default:
/* 其它的键值不处理 */
break;
}
}
/* 此函数一定要调用,设置重新启动,要不仅执行一次 */
GUI_TIMER_Restart(pTM->hTimer);
break;
default:
break;
}
}
其中ucKeyCode = bsp_GetKey();,bsp_GetKey()这个函数应该获得的是按键按下后返回的值是吧?但是不管我按了哪个键,打印出了ucKeyCode 的值都是等于0。为什么?
还是我理解不够? |
|