【emWIN】控件使用之后删除

由于控件本质上就是窗口,所以它们与任何窗口管理器 API 例程都兼容,最常用于控件的窗口管理器
函数如下所列,其实不限制下面这些函数,很多其它的窗口管理器函数都可以用于控件,窗口管理器函数
中的形参 hWin 填控件的句柄即可:
例程 描述
WM_DeleteWindow() 删除窗口。
WM_DisableMemdev() 禁止使用存储设备进行重绘。
WM_EnableMemdev() 启用存储设备用于重绘。
WM_InvalidateWindow() 使窗口无效。
WM_Paint() 立即绘制或重绘窗口。

/*********************************************************************
*
*       MainTask
*/
void MainTask(void) {
  PROGBAR_Handle hProg;
  int            Min;
  int            Max;
  int            Value;

  //
  // Set up some variables
  //
  Min   = 0;
  Max   = 100;
  Value = Min;
  bool flag = false;
  //
  // Enable automatic use of memory devices
  //
  WM_SetCreateFlags(WM_CF_MEMDEV);
  //
  // Initialize GUI
  //
  GUI_Init();
  //
  // Set back ground color for the desktop window
  //
  WM_SetDesktopColor(GUI_BLACK);
  //
  // Create a progressbar
  //
  hProg = PROGBAR_CreateEx(10, 10, 150, 100, WM_HBKWIN, WM_CF_SHOW, PROGBAR_CF_HORIZONTAL, 0);
  //
  // Set minimal and maximal value of the PROGBAR widget
  //
  PROGBAR_SetMinMax(hProg, Min, Max);
  //
  // Set back ground of the PROGBAR widget to invisible
  //
  WM_SetHasTrans(hProg);
  while (1)
  {
      if (flag == false)
      {
          PROGBAR_SetValue(hProg, Value);
          Value++;
      }
    
      if (Value > Max)
      {
          Value = Min;
          flag = true;
          WM_DeleteWindow(hProg);
      }
      GUI_Delay(50);
  }
}

猜你喜欢

转载自blog.csdn.net/jxwzh/article/details/80180701