emWin使用注意事项-笔记

1.在图片上显示文本时,特别是使用内存设备显示动态文本时,文本显示(如 GUI_DispString("Op Fancy's Blog"); )背景默认是桌面背景。

  (小记:桌面背景默认时黑色,可以通过调用如 GUI_SetBkColor(GUI_WHITE); 将桌面背景色设置为白色。)

如果需要将文本背景设为透明或是反转文本颜色(文本本身颜色和文本背景颜色同时反转),可通过调用 int GUI_SetTextMode(int TextMode); 函数进行设置

  函数参数分别可以为:

GUI_TEXTMODE_NORMAL

设置为显示正常文本。这是默认设置,该数值等同于0。

GUI_TEXTMODE_XOR 

设置为显示反转文本。

GUI_TEXTMODE_TRANS 

设置为显示透明文本。

GUI_TEXTMODE_REV

设置为反相显示的文本。

 2.使用内存设备进行动态显示的过程主要包括:

  (1).创建显示区域前景和背景的内存设备。

  (2).在进行显示前将背景区域拷贝到内存设备中

  (3).循环中选中前景内存设备作为接下来的操作对象

  (4).将之前拷贝的背景区域写入到前景设备

  (5).在设定的区域进行显示操作  注意:进行到这一步屏幕上是不会有实际显示画面的,因为显示操作实在选中的内存设备hMem_Fk上进行操作的,而不是对屏幕进行操作

  (6).把内存设备前景区域拷贝到屏幕进行显示  注意:这一步屏幕上才会有实际的显示画面

  (7).之后如果需要进行其他直接对屏幕显示的操作时,一定要在操作最后执行GUI_MEMDEV_Select(0);这一步的意思是将显示对象设置为LCD屏幕,而不是选中的内存设备HMem_FK

  (8).如果创建的是一次性使用的内存设备(如在调用的函数里面创建)时,需要在使用完成后删除内存设备,否则会造成内存泄漏,造成长时间使用时闪烁的情况!

GUI_MEMDEV_Handle hMem_BK;//背景
GUI_MEMDEV_Handle hMem_FK;//前景

hMem_BK = GUI_MEMDEV_Create(20,30,50,50);
hMem_FK = GUI_MEMDEV_Create(20,30,50,50);

GUI_MEMDEV_CopyFromLCD(hMem_BK );

while(1)
{
  GUI_MEMDEV_Select( hMem_FK);
  GUI_MEMDEV_Write(hMem_BK);
    /************************************************************
  这部分用于显示,  显示内容必须和上GUI_MEMDEV_Create函数中的参数相对应
  GUI_MEMDEV_Create(起始坐标x,起始坐标y,显示区域宽w, 显示区域高h);
  //GUI_SetBkColor(GUI_RED);
  //GUI_Clear();
  //上两行可以用来查看修改设定的内存设备区域,区域由红色填充 ************************************************************
*/   GUI_MEMDEV_CopyToLCD(hMem_BK);   GUI_MEMDEV_Select(0);
  //GUI_MEMDEV_Delete(); }
原文地址:https://www.cnblogs.com/fancyop/p/Notes.html