1.__M_PAGE(MODE3,"3333ye",&MODE3, //建立二级菜单
{
SOLGUI_Widget_Picture(5,5,110,55,zimo_1,100,50,FRM);
});
2.错误:..\MKFILE\menu.c(55): error: #167: argument of type "const u8 (*)[16]" is incompatible with parameter of type "const u8 *"
3.我数组是const u8 类型符合函数定义的要求,然后以数组名作为参数按理可以呀,把const去掉也会这样,OLED显示图片的有时候也会出现这样的错误,求解。拜托各位帮帮忙
4.void SOLGUI_Widget_Picture(u32 x0,u32 y0,u32 xsize,u32 ysize,u8 *pic,u32 x_len,u32 y_len,u8 mode) //带缩小适配的图片控件
{
float fw=0,fh=0;
u16 temp_x=0,temp_y=0;
u16 y_i=0,x_i=0;
u32 y0_t=y0+ysize; //将原点改为左下角(原本原点为右上角)
u8 m1=0;
//--------【当前状态】
if(bit_istrue(SOLGUI_CSR,bit(1))) return; //全屏占用
m1=bit_isfalse(mode,bit(7)); //是否反白
//------------【图片直出绘制】
if((xsize>=x_len)&&(ysize>=y_len))
SOLGUI_Pictrue(x0,y0,pic,x_len,y_len,m1);
else {
//------------【图片适配大小绘制】
fw=(float)x_len/xsize; fh=(float)y_len/ysize; //缩小比
for(x_i=0;x_i<xsize;x_i++)
{
temp_x=(u16)(fw*x_i); //临近插值缩放算法
for(y_i=0;y_i<ysize;y_i++)
{
temp_y=(u16)(fh*y_i);
if(SOLGUI_GetPixel(temp_x,temp_y,pic,x_len,y_len)) SOLGUI_DrawPoint(x0+x_i,y0_t-y_i,m1);
else SOLGUI_DrawPoint(x0+x_i,y0_t-y_i,!m1);
}
}
};
//-----【边框绘制】
if(bit_istrue(mode,bit(6))) SOLGUI_GBasic_Rectangle(x0,y0,x0+xsize-1,y0+ysize-1,ACTUAL);
}
const u8 zimo_1[][16]= {
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
//后面都省略了。。。。
};
|