|
#define ID_ICONVIEW_0 (GUI_ID_USER + 0x01)
WM_HWIN IconviewWin; //ICONVIEW控件窗口
static void cb_BkWindow(WM_MESSAGE * pMsg) {
switch (pMsg->MsgId) {
case WM_PAINT:
break;
case WM_INIT_DIALOG:
break;
default:
WM_DefaultProc(pMsg);
break;
}
}
//演示函数
void bmpdisplay_demo(void)
{
static FIL BMPFile;
GUI_HMEM hMem;
uint8_t *_acBuffer;
UINT* BytesRead;
WM_SetCallback(WM_HBKWIN,cb_BkWindow); //设置桌面窗口WM_HBKWIN的回调函数
hMem = GUI_ALLOC_AllocZero(150000);
_acBuffer = GUI_ALLOC_h2p(hMem);
f_open(&BMPFile,(const TCHAR*)"0:/PICTURE/bird.dat", FA_OPEN_EXISTING|FA_READ|FA_OPEN_ALWAYS); //打开文件
f_read(&BMPFile,_acBuffer,BMPFile.fsize,(UINT *)&BytesRead); 这里对吗?
GUI_EnableAlpha(1);
ICONVIEW_EnableStreamAuto();
IconviewWin = ICONVIEW_CreateEx(40, 1,64, 64,
WM_HBKWIN, WM_CF_SHOW | WM_CF_HASTRANS,
0, GUI_ID_ICONVIEW0, 48, 48);
ICONVIEW_AddStreamedBitmapItem(IconviewWin,(const void *)&_acBuffer,"");
ICONVIEW_SetBkColor(IconviewWin,ICONVIEW_CI_SEL,GUI_WHITE|0X40000000);
// GUI_ALLOC_Free(hMem); //不能释放,后面ICONVIEW刷新还要使用,要不图标没法显示啦。
f_close(&BMPFile); //关闭BMPFile文件
}
参考原来在论坛上的帖子(为ICONVIEW控件添加流位图要注意调用函数ICONVIEW_EnableStreamAuto()|uCOS & ucGUI & emWin - 安富莱电子论坛 - Powered by phpwind
http://www.armbbs.cn/forum.php?mod=viewthread&tid=12661),仿照写的程序不知道为什么不成功,已经把 GUI_ALLOC_Free(hMem); 注释掉啦 |
|