EMWIN GUI 消息

发布时间 2023-11-02 17:07:33作者: 不想解决BUG的李优秀

消息

1.WM_PAINT

1.1作用

重绘页面

1.2触发机制

  • 程序首次启动时;
  • 窗口被移动;

1.3官方事例

点击查看代码
void WinHandler(WM_MESSAGE * pMsg) {
  switch (pMsg->MsgId) {
  case WM_PAINT:  //触发重绘
    GUI_SetBkColor(0xFF00);
    GUI_Clear();
    GUI_DispStringAt("Hello world",0,0);
    break;
  default:
    WM_DefaultProc(pMsg);
  }
}

2.WM_CREATE

2.1作用

在消息(1)完成后,触发窗口重绘,重绘的窗口/页面在消息处理函数中执行

2.2触发机制

  • 消息(1)执行完后;

2.3官方事例

点击查看代码
//暂无

3.WM_TIMER

3.1作用

定时器消息,顾名思义为定时器触发消息,相当于STM32的定时器

3.2触发机制

  • 定时中断,配合WM_CreateTimer()使用;

2.3官方事例

点击查看代码
static void _cbWin(WM_MESSAGE * pMsg) {
  switch (pMsg->MsgId) {
  case WM_TIMER:
    /*
      ... do something ...
    */
    WM_RestartTimer(pMsg->Data.v, 1000);
    break;
  default:
    WM_DefaultProc(pMsg);
  }
}
static void _DemoTimer(void) {
  WM_HWIN hWin;
  WM_HTIMER hTimer;
  hWin   = WM_CreateWindow(10, 10, 100, 100, WM_CF_SHOW, _cbWin, 0);
  hTimer = WM_CreateTimer(hWin, 0, 1000, 0);
  while (1) {
    GUI_Exec();
  }
}