STEMWIN如何聚焦?PC模拟

函数很简单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会无效!


猜你喜欢

转载自blog.csdn.net/weixin_42381351/article/details/80762221