1、准备要添加的图标和图片(截成你需要的大小)
2、使用emwin提供的工具BmpCvt.exe装换出.c文件(open->save即可)
3、使用工具GUIBuilder.exe创建一个包含控件Image和Iconview的页面
注意:我用的是GUIBUilder V5.36 而V5.12不包含这两个控件
3、将生成的页面及图片.c添加到工程里
因为我是自己用图片转的.c文件所以没用到Imge提供的数组_acImage_0及函数_GetImageById还有相关的初始化
hItem = WM_GetDialogItem(pMsg->hWin, ID_IMAGE_0);
pData = _GetImageById(ID_IMAGE_0_IMAGE_0, &FileSize);
IMAGE_SetBMP(hItem, pData, FileSize);,删掉就行了
4、画页面的函数要注意图标的创建部分,我的图标是25*30的所以第九个参数是25*30(已用红色标出)
因为我要留边所以设置控件大小为35*40
static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] = {
{ FRAMEWIN_CreateIndirect, "Framewin", ID_FRAMEWIN_0, 0, 0, 800, 480, 0, 0x0, 0 },
{ ICONVIEW_CreateIndirect, "Iconview", ID_ICONVIEW_LOGO, 652, 0, 35, 40, 0, 0x0019001E, 0 },
};
5、在页面的.c里引入图面的地址指针
extern GUI_CONST_STORAGE GUI_BITMAP bmLogo;
extern GUI_CONST_STORAGE GUI_BITMAP bmmainpage;
6、在创建页面的回调函数里添加控件
static void _cbDialog(WM_MESSAGE * pMsg) {
const void * pData;
WM_HWIN hItem;
U32 FileSize;
int NCode;
int Id;
switch (pMsg->MsgId) {
case WM_INIT_DIALOG://初始化页面
hItem = WM_GetDialogItem(pMsg->hWin, ID_IMAGE_0);
IMAGE_SetBitmap(hItem,&bmmainpage);//添加图片
hItem = WM_GetDialogItem(pMsg->hWin, ID_ICONVIEW_LOGO);
ICONVIEW_AddBitmapItem(hItem,&bmLogo,"");//添加图标
}
7、然后调用你创建好的界面就可以了 CreateFramewin();