函数很简单WM_SetFocus( WM_HWIN );只需要一个参数WM_HWIN进去就行了。
实际用起来,看看我的例子吧
#include "dialog.h" #include "wintop.h" WM_HWIN hPage[5]; void MainTask(void) { GUI_Init(); GUI_UC_SetEncodeGBK(); hPage[0] = Createpage1(WM_HBKWIN); hPage[1] = Createpage2(WM_HBKWIN); hPage[2] = Createpage3(WM_HBKWIN); WM_HideWindow(hPage[1]); WM_HideWindow(hPage[2]); WM_ShowWindow(hPage[0]); WM_SetFocus( hPage[0]); while(1) {GUI_Delay(20);}//调用GUI_Delay函数延时20MS(最终目的是调用GUI_Exec()函数) }
有这句话的效果就是,画面打开的时候 自动聚焦到第一页的第一个控件 就是左边的button!
然后在PAGE1的.C里面外面聚焦到 右边的button!
case WM_INIT_DIALOG: // Initialization of 'page1' // hItem = pMsg->hWin; FRAMEWIN_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER); FRAMEWIN_SetFont(hItem, GUI_FONT_24_ASCII); // USER START (Optionally insert additional code for further widget initialization) // USER END hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_0); BUTTON_SetText(hItem, "自定义"); BUTTON_SetFont(hItem, &GBK_16m16); hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_1); BUTTON_SetText(hItem, "默认"); BUTTON_SetFont(hItem, &GBK_16m16); WM_SetFocus( WM_GetDialogItem(pMsg->hWin, ID_BUTTON_1)); break;
此时它的传参借鉴了前面的剥离函数!这样就找到WM_HWIN了。
注意:如果第一个地方没有聚焦到page1那么在page1中再次聚焦到button会无效!