|

楼主 |
发表于 2024-12-5 13:45:33
|
显示全部楼层
这是iconview控件部分
/* app 图标描述结构体 */
typedef struct {
const GUI_BITMAP* pBitmap; /* app 图标 */
const char* pText; /* app 图标名字 */
}BITMAP_ITEM;
/* ICONVIEW 显示的图标 */
static const BITMAP_ITEM BitmapItemTab1[] = {
{&bmlanguage, "Language"},
{&bmdate, "Date"},
{&bmunit, "Unit"},
{&bmfont, "Color"},
};
int index_icon=0;
static const GUI_WIDGET_CREATE_INFO _aDialogCreate_Menu1[] = {
{ FRAMEWIN_CreateIndirect, "Framewin", ID_FRAMEWIN_25, 0, 0, 320, 480, 0, 0x0, 0 },
};
void _cbDialog_Menu1(WM_MESSAGE* pMsg)
{
WM_HWIN IconviewWin;
WM_HWIN hItem;
int i = 0;
int Id;
int NCode;
static int Iconview0_Sel;
GUI_MEMDEV_Handle hMemBMP;
switch (pMsg->MsgId)
{
case MSG_UP:
break;
case MSG_DOWN:
break;
case MSG_LEFT:
break;
case MSG_RIGHT:
break;
case MSG_ENTER:
break;
case MSG_ESC:
GUI_EndDialog(pMsg->hWin, 0);
CreateFramewin_Main();
break;
case WM_TOUCH:
if(g_GT911.direction==LEFT_GLIDE||g_GT911.direction==RIGHT_GLIDE)
{
GUI_EndDialog(pMsg->hWin, 0);
CreateFramewin_Main();
}
break;
case WM_PAINT:
GUI_SetBkColor(GUI_MAKE_COLOR(0x00FAFBFF));
GUI_Clear();
hMemBMP=LCD_show_pic(0,0,"1:system/home/status_bar.bmp");
GUI_MEMDEV_WriteAt(hMemBMP,0,0);
break;
case WM_INIT_DIALOG:
//初始化FRAMWIN
hItem = pMsg->hWin;
FRAMEWIN_SetTitleVis(hItem, 0);//隐藏标题框
FRAMEWIN_SetClientColor(hItem, GUI_MAKE_COLOR(0x00FAFBFF));
FRAMEWIN_SetSkinClassic(hItem); //使能皮肤色,必须要有
FRAMEWIN_SetBorderSize(hItem, 0); //设置边框尺寸为0
IconviewWin = ICONVIEW_CreateEx(0, /* 相对于父窗口坐标的最左像素 */
40, /* 相对于父窗口坐标的最上像素 */
320, /* 水平尺寸 */
440, /* 垂直尺寸 */
hItem, /* 父窗口句柄 */
WM_CF_SHOW | WM_CF_HASTRANS,/* 窗口创建标志 */
ICONVIEW_CF_AUTOSCROLLBAR_V, /* 设置自动滚动条 */
ID_ICONVIEW_0, /* 控件ID */
96, /* 单个图标的水平尺寸 */
96); /* 单个图标的垂直尺寸 */
ICONVIEW_SetFont(IconviewWin, &GUI_FontMiSansMedium30);
ICONVIEW_SetTextColor(IconviewWin,ICONVIEW_CI_SEL,GUI_WHITE);
ICONVIEW_SetTextColor(IconviewWin,ICONVIEW_CI_UNSEL,GUI_BLACK);
ICONVIEW_SetBkColor(IconviewWin, ICONVIEW_CI_BK, GUI_MAKE_COLOR(0x00FAFBFF));
ICONVIEW_SetBkColor(IconviewWin, ICONVIEW_CI_SEL, GUI_ORANGE);
ICONVIEW_SetSpace(IconviewWin, GUI_COORD_X, 100);
ICONVIEW_SetSpace(IconviewWin, GUI_COORD_Y, 60);
ICONVIEW_SetIconAlign(IconviewWin, ICONVIEW_IA_HCENTER | ICONVIEW_IA_VCENTER);
for (i = 0; i < (GUI_COUNTOF(BitmapItemTab1)); i++)
{
ICONVIEW_AddBitmapItem(IconviewWin, BitmapItemTab1.pBitmap,
BitmapItemTab1.pText);
}
WM_SetFocus(IconviewWin);
ICONVIEW_SetSel(IconviewWin, index_icon);// -1默认不选中菜单图标,0选中第一个菜单
break;
case WM_NOTIFY_PARENT:
Id = WM_GetId(pMsg->hWinSrc);
NCode = pMsg->Data.v;
switch (Id)
{
case ID_ICONVIEW_0: /* ICONVIEW0 控件 */
switch (NCode) /* 通知代码 */
{
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
Iconview0_Sel = ICONVIEW_GetReleasedItem(pMsg->hWinSrc);
//Iconview0_Sel = ICONVIEW_GetSel(pMsg->hWinSrc);
index_icon=Iconview0_Sel;
switch (Iconview0_Sel)
{
case 0:
GUI_EndDialog(pMsg->hWin, 0);
CreateFramewin_Language();//语言
break;
case 1:
GUI_EndDialog(pMsg->hWin, 0);
CreateFramewin_DATE2();
break;
case 2:
GUI_EndDialog(pMsg->hWin, 0);
CreateFramewin_Units();
break;
case 3:
GUI_EndDialog(pMsg->hWin, 0);
CreateFramewin_FONT();
break;
}
break;
case WM_NOTIFICATION_SEL_CHANGED:
break;
}
break;
}
break;
default:
WM_DefaultProc(pMsg);
break;
}
}
WM_HWIN hWin;
WM_HWIN MainTask1(void) {
hWin = GUI_CreateDialogBox(_aDialogCreate_Menu1, GUI_COUNTOF(_aDialogCreate_Menu1), _cbDialog_Menu1, WM_HBKWIN, 0, 0);
menu_param.page=set_menu_page;
return hWin;
}
|
|