📄 main.c
字号:
#include "GUI.h"
#include "button.h"
#include "config.h"
#include "DIALOG.h"
#include "framewin.h"
#include "listbox.h"
#include <stddef.h>
/********************************************/
// ARMSYS实验十九:GUI基础应用
// 描述:了解GUI的基本应用
/********************************************/
#include "stdlib.h"
#ifndef GUI_CONST_STORAGE
#define GUI_CONST_STORAGE const
#endif
/* Palette
The following are the entries of the palette table.
Every entry is a 32-bit value (of which 24 bits are actually used)
the lower 8 bits represent the Red component,
the middle 8 bits represent the Green component,
the highest 8 bits (of the 24 bits used) represent the Blue component
as follows: 0xBBGGRR
*/
static GUI_CONST_STORAGE GUI_COLOR ColorsLogo[] = {
0xFFFFFF,0x000000
};
static GUI_CONST_STORAGE GUI_LOGPALETTE PalLogo = {
2, /* number of entries */
0, /* No transparency */
&ColorsLogo[0]
};
static GUI_CONST_STORAGE unsigned char acLogo[] = {
1,1};
GUI_CONST_STORAGE GUI_BITMAP bmLogo = {
160, /* XSize */
128, /* YSize */
20, /* BytesPerLine */
1, /* BitsPerPixel */
acLogo, /* Pointer to picture data (indices) */
&PalLogo /* Pointer to palette */
};
////////////////////////////////////////////////
/*********************************************************************
*
* Initializers for listbox
*/
static const GUI_ConstString _apListBox[] = {
"English", "Deutsch", "Fran鏰is", "Japanese", "Italiano", NULL
};
/*********************************************************************
*
* static code
*
**********************************************************************
*/
/*********************************************************************
*
* Dialog callback routine
*/
////////////////////////////////////////////////
static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] = {
{ FRAMEWIN_CreateIndirect, "Radio button sample", 0, 10, 10, 260, 100, FRAMEWIN_CF_MOVEABLE},
{ RADIO_CreateIndirect, NULL, GUI_ID_RADIO0, 5, 10,0,0,0, 3 },
{ TEXT_CreateIndirect, "Suspend" , 0, 25, 10, 70, 20, TEXT_CF_LEFT },
{ TEXT_CreateIndirect, "Shut down", 0, 25, 30, 70, 20, TEXT_CF_LEFT },
{ TEXT_CreateIndirect, "Restart after", 0, 25, 50, 70, 20, TEXT_CF_LEFT },
{ TEXT_CreateIndirect, "seconds", 0, 130, 50, 70, 20, TEXT_CF_LEFT },
{ EDIT_CreateIndirect, "200", GUI_ID_EDIT0, 95, 47, 30, 19, 0, 3},
{ BUTTON_CreateIndirect, "OK", GUI_ID_OK, 180, 10, 60, 20 },
{ BUTTON_CreateIndirect, "Cancel", GUI_ID_CANCEL, 180, 40, 60, 20 }
};
/*********************************************************************
*
* static code
*
**********************************************************************
*/
/*********************************************************************
*
* Dialog callback routine
*/
static void _cbCallback(WM_MESSAGE * pMsg) {
int Sel;
int NCode, Id;
WM_HWIN hDlg, hItem;
hDlg = pMsg->hWin;
switch (pMsg->MsgId) {
case WM_INIT_DIALOG:
hItem = WM_GetDialogItem(hDlg, GUI_ID_EDIT0);
EDIT_SetDecMode(hItem, 30, 0, 999, 0, 0); /* Select decimal mode */
WM_DisableWindow(hItem);
break;
case WM_KEY:
switch (((WM_KEY_INFO*)(pMsg->Data.p))->Key) {
case GUI_ID_ESCAPE:
GUI_EndDialog(hDlg, 1);
break;
case GUI_ID_ENTER:
GUI_EndDialog(hDlg, 0);
break;
}
break;
case WM_NOTIFY_PARENT:
Id = WM_GetId(pMsg->hWinSrc); /* Id of widget */
NCode = pMsg->Data.v; /* Notification code */
switch (NCode) {
case WM_NOTIFICATION_RELEASED: /* React only if released */
if (Id == GUI_ID_OK) { /* OK Button */
GUI_EndDialog(hDlg, 0);
}
if (Id == GUI_ID_CANCEL) { /* Cancel Button */
GUI_EndDialog(hDlg, 1);
}
break;
case WM_NOTIFICATION_VALUE_CHANGED:
hItem = WM_GetDialogItem(hDlg, GUI_ID_RADIO0);
Sel = RADIO_GetValue(hItem);
hItem = WM_GetDialogItem(hDlg, GUI_ID_EDIT0);
WM_SetEnableState(hItem, Sel == 2);
break;
}
break;
default:
WM_DefaultProc(pMsg);
}
}
////////////////////////////////////////////////
/* *** End of file *** */
int main(void) {
PINSEL0=(PINSEL0&0xfc000000);
LCD_T6963_Ini();
//对GUI进行初始化(包括对LCD显示的初始化)
GUI_Init();
// GUI_SetColor(GUI_BLACK);
//GUI_Clear();
//GUI_SetColor(GUI_WHITE);
// WM_SetCreateFlags(WM_CF_MEMDEV); /* Use memory devices on all windows to avoid flicker */
// GUI_ExecDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), &_cbCallback, 0, 0, 0);
// WM_SetCreateFlags(WM_CF_MEMDEV); /* Use memory devices on all windows to avoid flicker */
// GUI_ExecDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), &_cbCallback, 0, 0, 0);
// GUI_DispChars('*',10);//在(0,0)位置显示字符串
// GUI_DrawLine(15,15,70,70);
// GUI_DrawCircle(120,60,30);
// GUI_FillCircle(120,60,30);
// GUI_FillCircle(150,40,30);
// GUI_DrawBitmap(&bmLogo,0,0);
GUI_MessageBox("New message !",
"My test2", GUI_MESSAGEBOX_CF_MOVEABLE);
while(1);
return (1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -