|
物理按键 :
case GUI_KEY_UP: /*方向上*/
GUI_SendKeyMsg(GUI_KEY_UP, 1);
break;
case GUI_KEY_DOWN: /*方向下*/
GUI_SendKeyMsg(GUI_KEY_DOWN, 1);
break;
case GUI_KEY_LEFT: /*方向左*/
GUI_SendKeyMsg(GUI_KEY_LEFT, 1);
break;
case GUI_KEY_RIGHT: /*方向右*/
GUI_SendKeyMsg(GUI_KEY_RIGHT, 1);
break;
case GUI_KEY_PGUP: /*+*/
if(KeyPageSt==0)
GUI_SendKeyMsg(GUI_KEY_PGUP, 0);//
else
GUI_SendKeyMsg(GUI_KEY_PGUP, 1);
break;
case GUI_KEY_PGDOWN: /*-*/
if(KeyPageSt==0)
GUI_SendKeyMsg(GUI_KEY_PGDOWN, 0);
else
GUI_SendKeyMsg(GUI_KEY_PGDOWN, 1);
break;
创建如下页面:
static const GUI_WIDGET_CREATE_INFO _aYXDialogCreate[] = {
{ FRAMEWIN_CreateIndirect,"",ID_FRAMEWIN_0, 0, 0, 320, 240,0,0},
{ MULTIPAGE_CreateIndirect, "Multipage", ID_MULTIPAGE_0, 0, 2, 314, 204, 0, 0x0, 0 },
};
static const GUI_WIDGET_CREATE_INFO _aYX_1_DialogCreate[] = {
{ WINDOW_CreateIndirect, " 1", ID_WINDOW_0, 0, 80, 310, 180, 0, 0x0, 0 },
{ LISTVIEW_CreateIndirect, "Listview1", ID_LISTVIEW_0, 0, 0, 310, 175, 0, 0x0, 0 },
};
static const GUI_WIDGET_CREATE_INFO _aYX_2_DialogCreate[] = {
{ WINDOW_CreateIndirect, " 2", ID_WINDOW_1, 0, 80, 310, 180, 0, 0x0, 0 },
{ LISTVIEW_CreateIndirect, "Listview2", ID_LISTVIEW_1, 0, 0, 310, 175, 0, 0x0, 0 },
};
static const GUI_WIDGET_CREATE_INFO _aYX_3_DialogCreate[] = {
{ WINDOW_CreateIndirect, " 3", ID_WINDOW_2, 0, 80, 310, 180, 0, 0x0, 0 },
{ LISTVIEW_CreateIndirect, "Listview3", ID_LISTVIEW_2, 0, 0, 310, 175, 0, 0x0, 0 },
};
static const GUI_WIDGET_CREATE_INFO _aYX_4_DialogCreate[] = {
{ WINDOW_CreateIndirect, " 4", ID_WINDOW_3, 0, 80, 310, 180, 0, 0x0, 0 },
{ LISTVIEW_CreateIndirect, "Listview4", ID_LISTVIEW_3, 0, 0, 310, 175, 0, 0x0, 0 },
};
问题1:FRAMEWIN创建后MULTIPAGE有4个多页窗口每个里面有LISTVIEW控件,窗口打开后
总是聚焦在LISTVIEW控件非MULTIPAGE控件,焦点设置也不起作用,PAUP/PADOWN
按键不响应page switch(焦点在listview里),后来通过GUI_SendKeyMsg(GUI_KEY_PGUP, 0)
方式把不识别消息传到父窗口通过手动更改MULTIPAGE_SelectPage来实现。
问题2:以上MULTIPAGE_SelectPage后发现,窗口是切换了消息响应还是在P1,焦点也在P1,当我选择P2
退出窗口重入焦点在P2了,消息响应还在P1。
难到我的窗口管理还是不理解? |
|