emwin新增圖示和圖片
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();