第一个Windows窗口程序

#include <Windows.h>
HINSTANCE hinstance;//应用程序实例句柄
LRESULT CALLBACK WindowsProc(HWND hwnd, UINT uint, WPARAM wparam, LPARAM lparam);
void CreateWin32(wchar_t WinClass);
int _stdcall WinMain(HINSTANCE hinstance,
	HINSTANCE hperinstance, LPSTR cmdline, int cmdshow) {


	CreateWin32(L"Win32");

	MSG msg;
	while (GetMessageW(&msg, NULL, 0, 0))
	{
		DispatchMessage(&msg);//分发消息窗口 窗口函数处理消息
		TranslateMessage(&msg);//虚拟键消息转换字符串
	}
	return 0;
}
//窗口回调函数  UINT uint 里面存放全部窗口消息
LRESULT CALLBACK WindowsProc(HWND hwnd, UINT uint, WPARAM wparam, LPARAM lparam)
{
	

	return DefWindowProc(hwnd, uint, wparam, lparam);//其他消息默认处理
}
void CreateWin32(wchar_t WinClass) {
	WNDCLASSW Win32;
	Win32.style = CS_HREDRAW | CS_VREDRAW | CS_HREDRAW | CS_DBLCLKS;//窗口类风格
	Win32.lpfnWndProc = WindowsProc;//窗口回调函数
	Win32.hInstance = hinstance;
	Win32.hIcon = NULL;
	Win32.hCursor = LoadCursor(hinstance, IDC_HELP);
	Win32.hbrBackground = CreateSolidBrush(RGB(255, 255, 0));
	Win32.cbClsExtra = 0;
	Win32.cbWndExtra = 0;
	Win32.lpszClassName = WinClass;//窗口名字
	Win32.lpszMenuName = NULL;

	//注册窗口失败返回0
	if (!RegisterClass(&Win32)) {
		MessageBox(NULL, L"游戏初始化失败", L"梦幻西游", MB_OK);
		return -1;
	}
	//创建窗口
	HWND hwnd = CreateWindow(WinClass, L"第一个Windows程序", WS_OVERLAPPEDWINDOW, 100, 100, 640, 480, NULL, NULL, hinstance, NULL);
	if (hwnd == NULL) {
		MessageBox(NULL, L"游戏窗口创建失败", L"提示", MB_OK);
		return -1;
	}
	//显示窗口
	ShowWindow(hwnd, SW_SHOW);
	//更新窗口
	UpdateWindow(hwnd);
}

运行结果

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值