转
在实际的项目中使用实体按键操作GUI的产品还挺多。
借此专门做一个相关的例子,这个例子主要是给大家提供一种思路,实际的使用中还会遇到各种各样的情况,争取以后
在william hill官网
再发相关的例子时也配上实体按键操作,这样才能更好的拓展大家的思路。
4.1 实体按键操作EDIT控件
4.2 实验说明
4.3 例子下载
4.4 总结
0
|
|
|
|
4.1 实体按键操作EDIT控件
查看5.22手册上面对EDIT控件的介绍,当前EDIT控件支持的按键响应如下:
|
|
|
|
|
实际按键对应的操作如下:
复制代码
switch (ucKeyCode)
{
case KEY_DOWN_K1: /* K1键按下 实现截图*/
BSP_OS_SemPost(&SEM_SYNCH);
break;
case KEY_DOWN_K2: /* K2键按下 实现TAB按键的功能*/
GUI_SendKeyMsg(GUI_KEY_TAB, 1);
break;
case KEY_DOWN_K3: /* K3键按下 实现CANCEL的功能 */
GUI_SendKeyMsg(GUI_KEY_ESCAPE, 1);
break;
case JOY_DOWN_U: /* 摇杆UP键按下 实现删除字符功能,注意和BACKSPACE回格的区别*/
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键按下 实现OK */
GUI_SendKeyMsg(GUI_KEY_ENTER, 1);
break;
default:
/* 其它的键值不处理 */
break;
|
|
|
|
|
1. K1按键实现的是TAB键的功能,主要是实现对话框上面控件的聚焦切换。
2. 其余的按键功能比较简单,实际操作下就明白了,上面的代码中也有响应的注释。
3. 尝试了一下自定义按键消息没有成功,后面再试试。
下面是对话框回调函数中,按键消息的处理:
复制代码
case WM_KEY:
switch (((WM_KEY_INFO*)(pMsg->Data.p))->Key)
{
case GUI_KEY_ESCAPE:
GUI_EndDialog(hDlg, 1);
break;
case GUI_KEY_ENTER:
GUI_EndDialog(hDlg, 0);
break;
}
break;
|
|
|
|
|
4.2 实验说明
本期实例实现一个如下的界面:
|
|
|
|
|
4.3 例子下载
下载这个例子前请运行第1期实例中触摸校准程序,将校准参数保存到EEPROM里面。
|
|
|
|
|
4.3 总结
本期例子主要讲了EDIT控件的使用,大家可以尝试操作其它控件
|
|
|
|
|
楼主大大,我tab切换控件之后会失去聚焦,怎么解决
|
|
|
|
|