嵌入式学习小组
直播中

张雪

7年用户 184经验值
私信 关注

为什么void LCD_L0_FillRect(int x0, int y0, int x1, int y1)用开窗口的方式填充就会出错

             为什么uCGUI的void LCD_L0_FillRect(int x0, int y0, int x1, int y1) 只能用一个个点来填充,用开窗口的方式填充就会出错?

回帖(4)

刘阳

2019-3-1 08:10:14
兼容性不好.
举报

赵明

2019-3-1 08:29:00
才发现,原子的头像很有风格啊^^
举报

潘晶燕

2019-3-1 08:48:36
呵呵,心中的恶魔
举报

王岩

2019-3-1 08:57:36
不是的我的是这样改写的:
/*********************************************************************
*
*       LCD_L0_FillRect
*/
void LCD_L0_FillRect(int x0, int y0, int x1, int y1)
{
//  for (; y0 <= y1; y0++)
//  {
//    LCD_L0_DrawHLine(x0, y0, x1);//LCD_COLORINDEX
//  }
  //改进后
  if (GUI_Context.DrawMode & LCD_DRAWMODE_XOR)
  {
      LCD_SetPos(x0,x1,y0,y1);
      for (; y0 <= y1; y0++)
      {
        for (; x0 <= x1; x0++)
        LCD_L0_XorPixel(x0, y0);
      }
  }
  else
  {
      LCD_SetPos(x0,x1,y0,y1);
      for (; y0 <= y1; y0++)
      {
        for (; x0 <= x1; x0++)
        Write_Data_U16(LCD_COLORINDEX);
      }
  }
  
}
设定一个窗口,再填充,没错。
楼主应该只是用到我else里的语句吧,再看一下我的if里的程序
举报

更多回帖

发帖
×
20
完善资料,
赚取积分