|
第一层是桌面,全是iconview图标。点击系统管理进入系统管理界面,系统管理界面也全是iconview,再点击进入应用界面,比如时间设置,从时间设置退出后,焦点没在系统管理界面,接了物理键盘的,所以能够发现焦点跑到第一层界面上去了。用触摸也是一样的效果,第一层进第二层有焦点,第二层进第三层退到第二层无焦点,但是手可以直接触摸再进行操作。
部分代码如下:
第一层桌面面点击图标进第二层界面
case ID_ICONVIEW_3: // Notifications sent by 'Iconview'
switch(NCode) {
case WM_NOTIFICATION_CLICKED:
// USER START (Optionally insert code for reacting on notification message)
// USER END
break;
case WM_NOTIFICATION_RELEASED:
// USER START (Optionally insert code for reacting on notification message)
CreateSys_Manage();
// USER END
break;
第二层界面建立函数
WM_HWIN CreateSys_Manage(void);
WM_HWIN CreateSys_Manage(void) {
WM_HWIN hWin;
hWin = GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), _cbDialog, WM_HBKWIN, 0, 0);
return hWin;
}
第二层界面的时间设置调用
case WM_NOTIFY_PARENT:
Id = WM_GetId(pMsg->hWinSrc);
NCode = pMsg->Data.v;
switch(Id) {
case ID_ICONVIEW_0: // Notifications sent by 'Iconview'
switch(NCode) {
case WM_NOTIFICATION_CLICKED:
// USER START (Optionally insert code for reacting on notification message)
// USER END
break;
case WM_NOTIFICATION_RELEASED:
// USER START (Optionally insert code for reacting on notification message)
CreateTimeSet();
// USER END
break;
第三层时间设置函数
WM_HWIN CreateTimeSet(void);
WM_HWIN CreateTimeSet(void) {
WM_HWIN hWin;
hWin = GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), _cbDialog, WM_HBKWIN, 0, 0);
return hWin;
}
第三层退出函数
case ID_BUTTON_2: // Notifications sent by 'Exit'
switch(NCode) {
case WM_NOTIFICATION_CLICKED:
// USER START (Optionally insert code for reacting on notification message)
// USER END
break;
case WM_NOTIFICATION_RELEASED:
// USER START (Optionally insert code for reacting on notification message)
WM_InvalidateWindow(WM_GetParent(pMsg->hWin));
GUI_EndDialog(pMsg->hWin, 0);
WM_SetFocus(WM_GetParent(pMsg->hWin));
// USER END
break;
// USER START (Optionally insert additional code for further notification handling)
// USER END
}
break; |
|