參考資訊:
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 *mouse = NULL;
switch (pMsg->MsgId) {
case WM_PAINT:
WM_GetInsideRect(&rt);
GUI_SetBkColor(GUI_GREEN);
GUI_ClearRectEx(&rt);
break;
case WM_MOUSEOVER:
mouse = (GUI_PID_STATE *)pMsg->Data.p;
sprintf(buf, "Mouse X=%d, Y=%d, Pressed=%d", mouse->x, mouse->y, mouse->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_CURSOR_Show();
GUI_CURSOR_SetPosition(60, 60);
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