|
emwin6.32 ,屏格式565的,图片1背景,图片2基于图片1透明,参考的安富莱emwin教程的时钟指针代码,但图片2透明部分总是黑的
static GUI_MEMDEV_Handle hMem1 = 0;
if(hMem1 == 0)
{
extern GUI_CONST_STORAGE GUI_BITMAP bmpressure_bk;
hMem1 = GUI_MEMDEV_CreateFixed(
0,0,
bmpressure_bk.XSize,
bmpressure_bk.YSize+10,
GUI_MEMDEV_NOTRANS,
GUI_MEMDEV_APILIST_32,
GUI_COLOR_CONV_8888);
//hMem1 = GUI_MEMDEV_CreateEx(0, 0, (89), (56),GUI_MEMDEV_HASTRANS);
GUI_MEMDEV_Select(hMem1);
GUI_SetBkColor(GUI_TRANSPARENT);
GUI_Clear();
GUI_DrawBitmap(&bmpressure_bk, 0, 0);
GUI_MEMDEV_Select(0);
}
static GUI_MEMDEV_Handle hMem2 = 0;
if(hMem2 == 0)
{
extern GUI_CONST_STORAGE GUI_BITMAP bmpointer;
hMem2 = GUI_MEMDEV_CreateFixed(
0,0,
bmpointer.XSize,
bmpointer.YSize,
GUI_MEMDEV_NOTRANS,
GUI_MEMDEV_APILIST_32,
GUI_COLOR_CONV_8888);
//hMem2 = GUI_MEMDEV_CreateEx(0, 0, (42), (42),GUI_MEMDEV_HASTRANS);
GUI_MEMDEV_Select(hMem2);
GUI_SetBkColor(GUI_TRANSPARENT);
GUI_Clear();
GUI_DrawBitmap(&bmpointer, 0, 0);
GUI_MEMDEV_Select(0);
}
int16_t x0 = 639 + 45;
int16_t y0 = 290 + 47;
int16_t r = 45;
static GUI_MEMDEV_Handle hMem = 0;
if(hMem == 0)
{
//hMem = GUI_MEMDEV_Create(0, 0, (89), (56));
hMem = GUI_MEMDEV_CreateFixed(
0, 0, 89, 56,
GUI_MEMDEV_NOTRANS,
GUI_MEMDEV_APILIST_32,
GUI_COLOR_CONV_8888);
}
GUI_MEMDEV_Select(hMem);
//GUI_MEMDEV_Select(hMem1);
GUI_SetBkColor(get_box_color());
GUI_Clear();
GUI_MEMDEV_WriteAt(hMem1,0,0);
GUI_MEMDEV_WriteAt(hMem2,41,10);
// GUI_POINT _bNeedle[6];
// float radian = acos(-1);
// int angle = _var_uint32(TREAT_PRESSURE);
// //radian = (_var_uint32(TREAT_PRESSURE) - 180) * radian / 180;
// radian = (angle - 180) * radian / 180;
// GUI_RotatePolygon(&_bNeedle[0], &_aNeedle[0], GUI_COUNTOF(_aNeedle), radian);
// GUI_SetColor(0xFFFFFFFF);
// GUI_FillPolygon(&_bNeedle[0], GUI_COUNTOF(_aNeedle), x0, y0);
// GUI_MEMDEV_CopyToLCD(hMem);
GUI_MEMDEV_Select(0);
GUI_MEMDEV_WriteAt(hMem,639,290);
|
|