[Win32]定时器SetTimer

本文详细介绍了如何在Win32应用程序中使用SetTimer API创建定时器,讲解了其工作原理以及如何在主窗口消息处理函数中响应定时器消息,帮助开发者实现定时任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 要调用的地方

	SetTimer(g_hMainWnd,ID_GIVEUP,1000,NULL);//会给主窗口发送WM_TIMER消息;1000=1秒;ID_GIVEUP为标识

	if (MessageBox(g_hMainWnd,L"确定要退出吗?",L"提示",MB_YESNO)==IDYES)
	{ 
		KillTimer(g_hMainWnd,ID_GIVEUP);
		//自己的代码
	}	


主窗口消息处理函数: 

LRESULT CALLBACK GameMainWnd::GameMainWndProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
{
	HDC hdc;
	UINT nCtrlId;
	PAINTSTRUCT ps;
	LPCREATESTRUCT lpcs;
	GameMainWnd* lpWnd = (GameMainWnd*)GetWindowLongPtr(hWnd, GWLP_USERDATA);
	switch (nMsg) {
	case WM_CREATE:
		lpcs = (LPCREATESTRUCT)lParam;
		SetWindowLongPtr(hWnd, GWLP_USERDATA, (LONG_PTR)lpcs->lpCreateParams);
		break;
	case WM_DESTROY:
		SetWindowLongPtr(hWnd, GWLP_USERDATA, NULL);
		break;
	case WM_PAINT:
		hdc =BeginPaint(hWnd, &ps);
		lpWnd->OnPaint(hdc);
		EndPaint(hWnd, &ps);
		break;
	case WM_SIZE:
		lpWnd->
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值