ucgui的callback的小例子

#include <stddef.h>
#include "GUI.h"
#include "DIALOG.h"
#include "DROPDOWN.h"

static void cbBackgroundWin(WM_MESSAGE* pMsg)
{
	switch (pMsg->MsgId)
	{
	case WM_PAINT:    GUI_Clear();
	default:          WM_DefaultProc(pMsg);
	}
}

static void cbForegroundWin(WM_MESSAGE* pMsg)
{
	switch (pMsg->MsgId)
	{
	case WM_PAINT:    GUI_SetBkColor(GUI_GREEN);
		GUI_Clear();
		GUI_DispString("Foreground window");
	default:          WM_DefaultProc(pMsg);
	}
}

static void DemoRedraw(void)
{
	GUI_HWIN hWnd;
	while(1)
	{
		
		hWnd = WM_CreateWindow(100, 100, 200, 200, WM_CF_SHOW, cbForegroundWin, 0);
		GUI_Delay(5000);
		WM_DeleteWindow(hWnd);
		GUI_DispStringAt("hWnd Deleted Background of window has not been redrawn", 20, 20);
		
		GUI_Delay(5000);
		GUI_Clear();
		
		WM_SetCallback(WM_HBKWIN, cbBackgroundWin);
		
		hWnd = WM_CreateWindow(100, 100, 200, 200,WM_CF_SHOW, cbForegroundWin, 0);
		
		GUI_Delay(5000);
		
		WM_DeleteWindow(hWnd);
		GUI_DispStringAt("hWnd Deleted Background of window has been redrawn", 20, 20);
		GUI_Delay(5000);
		
		WM_SetCallback(WM_HBKWIN, 0);
	}
}
void MainTask(void)
{
	GUI_Init();
	DemoRedraw();
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值