1. 程式人生 > >emwin新增圖示和圖片

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();