參考資訊:
https://github.com/piyushpandey013/ucGUI
https://github.com/yongzhena/ucgui-linux
main.c
#include <stdio.h> #include <stdlib.h> #include "GUI.h" #include "MULTIPAGE.h" #define ID_TEXT 100 static GUI_WIDGET_CREATE_INFO info[] = { { FRAMEWIN_CreateIndirect, "Dialog", 0, 10, 10, 200, 100, WM_CF_SHOW, 0}, { TEXT_CreateIndirect, "", ID_TEXT, 10, 20, 200, 20, 0, GUI_TA_LEFT }, }; static void WndProc(WM_MESSAGE* pMsg) { WM_HWIN hText = 0; GUI_RECT rt = { 0 }; char buf[255] ={ 0 }; GUI_PID_STATE *tp = NULL; switch (pMsg->MsgId) { case WM_PAINT: WM_GetInsideRect(&rt); GUI_SetBkColor(GUI_GREEN); GUI_ClearRectEx(&rt); break; case WM_TOUCH: tp = (GUI_PID_STATE *)pMsg->Data.p; if (tp) { sprintf(buf, "Touch X=%d, Y=%d, Pressed=%d", tp->x, tp->y, tp->Pressed); hText = WM_GetDialogItem(pMsg->hWin, ID_TEXT); TEXT_SetText(hText, buf); } break; default: WM_DefaultProc(pMsg); } } int main(int argc, char *argv[]) { GUI_Init(); GUI_SetBkColor(GUI_GRAY); GUI_Clear(); GUI_ExecDialogBox(info, GUI_COUNTOF(info), WndProc, 0, 0, 0); return 0; }
編譯、執行
$ gcc main.c -o main libucgui.a -IGUI_X -IGUI/Core -IGUI/Widget -IGUI/WM -lSDL $ ./main