emwin用直接的流位图显示BUTTON的话,是不能正常显示的 这是流位图的机构体
typedef struct {
U16 ID;
U16 Format;
U16 XSize;
U16 YSize;
U16 BytesPerLine;
U16 BitsPerPixel;
U16 NumColors;
U16 HasTrans;
} GUI_BITMAP_STREAM;
没有数据指向
,然后我用另外的方式,把流位图转成位图。能按钮的图标正常显示。
但是当我尝试显示多个按钮的时候,这个方式就不行了。比如2个按钮,从流位图转成位图。 第一个流位图里面的数据,有第二流位的数据。就像是第一个流位的地址里含有一小段第二流位图地址
离线
有大佬遇到类似的问题吗?申请动态内存没错的,查了一下问题是出在流位图转成位图过程,我用的函数是这个GUI_CreateBitmapFromStream
离线
一直用 ucgui, 没用过 GUI_CreateBitmapFromStream, 刚搜了一下, 居然也有这玩意。
不懂,只能帮忙up一下了.
离线
case WM_PAINT:
if (BUTTON_IsPressed(hWin))
{
//GUI_SetColor(GUI_DARKGRAY);
//GUI_AA_FillCircle(100, 0, 72);
GUI_SetBkColor(GUI_DARKGRAY);
GUI_SetColor(GUI_WHITE);
GUI_DrawBitmap(&bmReturn, 0, 0);
}
else
{
//GUI_SetColor(GUI_STCOLOR_LIGHTBLUE);
//GUI_AA_FillCircle(100, 0, 72);
GUI_SetBkColor(GUI_STCOLOR_LIGHTBLUE);
GUI_SetColor(GUI_WHITE);
GUI_DrawBitmap(&bmReturn, 0, 0);
}
离线
GUI_CONST_STORAGE GUI_BITMAP bmReturn =
{
72, // xSize
72, // ySize
288, // BytesPerLine
32, // BitsPerPixel
(unsigned char *)_acReturn, // Pointer to picture data
NULL, // Pointer to palette
GUI_DRAW_BMP8888
};
离线
我是用GUI_DrawBitmap来实现按钮
离线
问题出在动态申请上,188K大小申请,才申请到60多K的内存
离线
内存太小?
离线