由于控件本质上就是窗口,所以它们与任何窗口管理器 API 例程都兼容,最常用于控件的窗口管理器
函数如下所列,其实不限制下面这些函数,很多其它的窗口管理器函数都可以用于控件,窗口管理器函数
中的形参 hWin 填控件的句柄即可:
/*********************************************************************
*
* 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);
}
}
函数如下所列,其实不限制下面这些函数,很多其它的窗口管理器函数都可以用于控件,窗口管理器函数
中的形参 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);
}
}