跟我一起玩Win32开发(3):窗口的重绘

本文介绍Win32应用程序中窗口重绘的概念,分析窗口重绘问题及其原因,并提供了解决方案。通过设置窗口类样式和响应WM_PAINT消息来确保窗口正确重绘,同时展示了如何更改文本颜色及绘制图形。
摘要由CSDN通过智能技术生成

我们今天来吹一下关于窗口重绘的事情,在开始吹牛之前,我们先用上一篇博文中说到的方法写一个简单的Win32应用程序。代码如下:

#include <Windows.h>

//先声明一下消息处理函数
LRESULT CALLBACK MyWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);

// 入口点
int CALLBACK WinMain(
	HINSTANCE hInstance,
	HINSTANCE hPrvInstance,
	LPSTR lpCommandLine,
	int cmdShow)
{
	WCHAR* cln = L"MyApp";
	//设计窗口类
	WNDCLASS wc = {};
	wc.hInstance = hInstance;
	wc.lpszClassName = cln;
	wc.lpfnWndProc = MyWindowProc;
	//注册窗口类
	RegisterClass(&wc);
	// 创建窗口
	HWND hMainwind = CreateWindow(
		cln,
		L"绘制窗口",
		WS_OVERLAPPEDWINDOW,
		20,
		12,
		450,
		300,
		NULL,
		NULL,
		hInstance,
		NULL);
	// 显示窗口
	if(hMainwind == NULL)
		return 0;
	ShowWindow(hMainwind,SW_NORMAL);
	// 消息循环
	MSG msg;
	while(GetMessage(&msg,NULL,0,0))
	{
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}
	return 0;
}

// 窗口消息处理程序
LRESULT CALLBACK MyWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
	switch(msg)
	{
	case WM_PAINT:
		break;
	case WM_DESTROY:
		PostQuitMessage(0);//退出程序
		return 0;
	default:
		return DefWindowProc(hwnd,msg,wParam,lParam);
	}
}


这个程序是可以正常运行的,我们先来运行一下&#x

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值