|
利用外部的flash中bmp文件来进行作按键背景,
OpenFlashFile("voice_button_play.bmp",&bmp_temp,&bmp_hMen);
BUTTON_SetBMP(WM_GetDialogItem(pMsg->hWin, GUI_ID_BUTTON0),0,(const void *)bmp_temp);
GUI_ALLOC_Free(bmp_hMen); //这句话注释掉就可以正常显示, 当打开时,就无法正常显示。
后来更改为换肤的方法进行制作按键背景,
case WIDGET_ITEM_DRAW_BITMAP:
if (pDrawItemInfo->ItemIndex == BUTTON_SKINFLEX_PI_PRESSED)
{
OpenFlashFile("voice_button_stop_down.bmp",&bmp_temp_ptr,&bmp_hMen);
GUI_BMP_Draw((const void *)bmp_temp_ptr,0,0);
GUI_ALLOC_Free(bmp_hMen);
bmp_temp_ptr=0;
}
else if ((pDrawItemInfo->ItemIndex == BUTTON_SKINFLEX_PI_FOCUSSED) ||
(pDrawItemInfo->ItemIndex == BUTTON_SKINFLEX_PI_ENABLED) ||
(pDrawItemInfo->ItemIndex == BUTTON_SKINFLEX_PI_DISABLED))
{
OpenFlashFile("voice_button_play.bmp",&bmp_temp_ptr,&bmp_hMen);
GUI_BMP_Draw((const void *)bmp_temp_ptr,0,0);
GUI_ALLOC_Free(bmp_hMen);
bmp_temp_ptr=0;;
}
else BUTTON_DrawSkinFlex(pDrawItemInfo);
这时相应的指针可以释放掉, 但是我在跟踪程序时,按键的状态一发生变化时,都要去读取外部的flash文件, 我怕当界面复杂时,一个个背景从外部flash中读取进行, 会不会引起整个界面的刷新很慢。
大家是怎么做, 能否告之,谢谢! |
|