【STemWin教程入门篇】第36章 窗口管理器之定时器使用

标签:
定时器ucos-iiiucguiemwindsp |
分类: emWin |
第36章
窗口管理器之定时器使用
本期教程跟大家讲一下STemWin自带的定时器使用方法,这个定时器使用起来非常简单,而且很实用。在需要定时更新的时候可以用这个定时器。
36.
36.
36.
36.
36.1
定时器功能介绍
STemWin中有四个定时器相关的API函数供用户调用。
函数 |
功能描述 |
WM_CreateTimer() |
创建向窗口发送WM_TIMER消息的定时器 |
WM_DeleteTimer() |
删除定时器 |
WM_GetTimerId() |
获取给定定时器的Id |
WM_RestartTimer() |
重启定时器 |
这四个函数都是简单易用,下面通过两个例子跟大家讲解一下定时器的使用。
36.2
桌面窗口上使用定时器实例
源代码如下(可以将其直接的复制到开发板或者模拟器上面运行)
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
GUI_COLOR
static
static
{
case
ucBackColor++;
if
{
ucBackColor
}
GUI_SetBkColor(_acColor[ucBackColor]);
GUI_Clear();
case
WM_RestartTimer(pMsg->Data.v,
WM_InvalidateWindow(hWin);
}
void
{
WM_HTIMER
GUI_Init();
WM_SetCallback(WM_HBKWIN,
hTimer
while
{
GUI_Delay(500);
}
}
这个Demo主要是实现每隔1000ms改变一下桌面窗口的颜色。
1.
2.
WM_CreateTimer(WM_HBKWIN,
0,
1000,
0)
这个Demo的实际显示效果如下:
36.3
对话框上使用定时器实例
这个Demo的主要功能是在对话框上面实现一个计数功能。下面是源码(可以将其直接的复制到开发板或者模拟器上面运行)
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
static
static
{
};
void
{
}
void
{
//
}
static
{
char
case
sprintf(buf,
TEXT_SetText(WM_GetDialogItem(hWin,GUI_ID_TEXT0),
WM_RestartTimer(pMsg->Data.v,
case
}
void
{
WM_HTIMER
Count
WM_SetCreateFlags(WM_CF_MEMDEV);
GUI_Init();
WM_SetDesktopColor(GUI_BLUE);
PROGBAR_SetDefaultSkin(PROGBAR_SKIN_FLEX);
FRAMEWIN_SetDefaultSkin(FRAMEWIN_SKIN_FLEX);
PROGBAR_SetDefaultSkin(PROGBAR_SKIN_FLEX);
BUTTON_SetDefaultSkin(BUTTON_SKIN_FLEX);
CHECKBOX_SetDefaultSkin(CHECKBOX_SKIN_FLEX);
DROPDOWN_SetDefaultSkin(DROPDOWN_SKIN_FLEX);
SCROLLBAR_SetDefaultSkin(SCROLLBAR_SKIN_FLEX);
SLIDER_SetDefaultSkin(SLIDER_SKIN_FLEX);
HEADER_SetDefaultSkin(HEADER_SKIN_FLEX);
RADIO_SetDefaultSkin(RADIO_SKIN_FLEX);
//
hTimer
while
{
GUI_Delay(500);
}
}
1.
2.
这个例子的实际显示效果如下(分辨率800*480):
36.4
总结
大家学完本期教程后,可以考虑在实际项目中使用这个功能,很实用。