|
emwin直接创建控件iconview,不带透明通道。添加了位图信息,只能显示一个位图图标出来,其他的都不显示
控件iconview大小是320*480,添加的位图图标大小是320*49,想用这个做菜单栏,共有十三个菜单,一页显示八个
并且设置了背景色好像没起作用还是白色的底色
/* app 图标描述结构体 */
typedef struct {
const GUI_BITMAP* pBitmap; /* app 图标 */
const char* pText; /* app 图标名字 */
}BITMAP_ITEM;
/* ICONVIEW 显示的 APP 图标 */
static const BITMAP_ITEM BitmapItemTab1[] = {
{&bmlanguage_C, ""},
{&bmtime_C, ""},
{&bmunit_C, ""},
{&bmsampling_C, ""},
{&bmmode_C, ""},
{&bmdata_C, ""},
{&bmalarm_C, ""},
{&bmcolour_C, ""},
{&bmbacklight_C, ""},
{&bmdisplay_time_C, ""},
{&bmpower_off_C, ""},
{&bmflow, ""},
{&bminformation_C, ""},
};
void cb_BkWindow(WM_MESSAGE* pMsg)
{
int Id;
int NCode;
static int Iconview0_Sel;
switch (pMsg->MsgId)
{
case WM_PAINT:
GUI_SetBkColor(GUI_MAKE_COLOR(0x00252525));//灰黑色
GUI_Clear();
GUI_DrawBitmap(&bmset_back, 0, 35); /* 绘制背景图片 */
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_GetSel(pMsg->hWinSrc);
switch (Iconview0_Sel)
{
case 0:
break;
case 1:
break;
case 2:
break;
case 3:
break;
}
break;
case WM_NOTIFICATION_SEL_CHANGED:
break;
}
break;
}
break;
default:
WM_DefaultProc(pMsg);
break;
}
}
void MainTask()
{
WM_HWIN IconviewWin;
int i = 0;
GUI_Init();
WM_MULTIBUF_Enable(1);
IconviewWin=ICONVIEW_CreateEx(0, 35, /* 左上角坐标 */
320, 440, /* 小工具的水平和垂直尺寸 */
WM_HBKWIN, /* 父窗口为背景窗口 */
WM_CF_SHOW,
ICONVIEW_CF_AUTOSCROLLBAR_V,//屏幕不够显示自动加滚动条
ID_ICONVIEW_0, /* 小工具 ID */
319, /* 图标的水平尺寸为 320 */
49); /* 图标的垂直尺寸为 49 */
for (i = 0; i < (GUI_COUNTOF(BitmapItemTab1)); i++)
{
ICONVIEW_AddBitmapItem(IconviewWin, BitmapItemTab1.pBitmap,
BitmapItemTab1.pText);
}
//ICONVIEW_SetSel(IconviewWin, -1);// -1默认不选中菜单图标,0选中第一个菜单
ICONVIEW_SetFont(IconviewWin, &GUI_Font16_ASCII);
ICONVIEW_SetBkColor(IconviewWin, ICONVIEW_CI_SEL, GUI_MAKE_COLOR(0x0000A5FF));//橙色
ICONVIEW_SetSpace(IconviewWin, GUI_COORD_X, 0);
ICONVIEW_SetSpace(IconviewWin, GUI_COORD_Y, 1);
//ICONVIEW_SetIconAlign(IconviewWin, ICONVIEW_IA_HCENTER | ICONVIEW_IA_VCENTER);
WM_SetCallback(WM_HBKWIN, cb_BkWindow); /* 设置桌面窗口 WM_HBKWIN 的回调函数 */
while (1)
{
GUI_Delay(100);
}
}
|
|