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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值