void MainTask(void){ GUI_HWIN hDlg; WM_HWIN hWin2; GUI_Init(); //Parent Window hWin2 = WM_CreateWindow(0, 0 ,325, 250,WM_CF_SHOW, NULL, 0); hDlg = CreateFrame(); while(1) { GUI_Delay(10); } } static WM_HWIN CreateFrame() { WM_HWIN hWin; hWin = GUI_CreateDialogBox(_aDialogCreate,GUI_COUNTOF(_aDialogCreate),&_cbDialog, hWin2, 0, 0); return hWin; } static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] = { { FRAMEWIN_CreateIndirect, "MainWindow", ID_FRAMEWIN_0, 0, 0, 320, 240, 0, 0, 0 }, { TEXT_CreateIndirect, "Virtual Screen Sample ",ID_TEXT_0 , 0, 0, 320, 240, 0, 0, 0 }, { BUTTON_CreateIndirect, "SetUp", ID_BUTTON_0, 200, 30, 80, 20, 0, 0, 0 }, { BUTTON_CreateIndirect, "Caliberation", ID_BUTTON_1, 200, 55, 80, 20, 0, 0, 0 }, { BUTTON_CreateIndirect, "About", ID_BUTTON_2, 200, 80, 80, 20, 0, 0, 0 }, // USER START (Optionally insert additional widgets) // USER END }; /********************************************************************* * * _ cbDialog */ static void _cbDialog(WM_MESSAGE * pMsg) { WM_HWIN hItem; int Id, NCode; // USER START (Optionally insert additional variables) // USER END switch (pMsg->MsgId) { case WM_INIT_DIALOG: // // Initialization of 'Framewin' // hItem = pMsg->hWin; FRAMEWIN_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER); FRAMEWIN_SetFont(hItem, GUI_FONT_24_ASCII); // // Initialization of 'Text' // hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_0); TEXT_SetTextAlign(hItem, GUI_TA_HCENTER); // // Initialization of 'Button' // hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_0); BUTTON_SetTextAlign(hItem, GUI_TA_HCENTER); // USER START (Opt. insert additional code for further widget initialization) // USER END //break; case WM_NOTIFY_PARENT: Id = WM_GetId(pMsg->hWinSrc); NCode = pMsg->Data.v; switch(Id) { case ID_BUTTON_0: // Notifications sent by 'Button' switch(NCode) { case WM_NOTIFICATION_CLICKED: // USER START (Optionally insert code for reacting on notification message) // USER END //GUI_EndDialog(pMsg->hWin, 0); GUI_DispStringAt("Clicked", 100, 100); break; case WM_NOTIFICATION_RELEASED: // USER START (Optionally insert code for reacting on notification message) // USER END GUI_DispStringAt("Released", 100, 20); //GUI_EndDialog(pMsg->hWin, 0); break; // USER START (Opt. insert additional code for further notification handling) // USER END } break; // USER START (Optionally insert additional code for further Ids) // USER END } break; // USER START (Optionally insert additional message handling) // USER END default: WM_DefaultProc(pMsg); break; } }