win32框架

#include <windows.h>
#include <tchar.h>

static TCHAR szWindowClass[] = _T("WindowClass");
static TCHAR szTitle[] = _T("我的第一个程序");

//第五步:窗口函数中处理窗口消息
LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	PAINTSTRUCT ps;
	HDC hdc; //HDC绘图句柄
	TCHAR greeting[] = _T("第一个程序");

	switch (uMsg)
	{
	case WM_CLOSE:
	{
		int iRet = MessageBox(hWnd, _T("要关闭窗口吗?"), _T("Tip"), MB_OKCANCEL);
		if (iRet == IDOK) PostQuitMessage(0);
	}
	break;
	case WM_PAINT:  //第一次创建窗口
		hdc = BeginPaint(hWnd, &ps); //准备指定的绘图窗口
		TextOut(hdc, 100, 100, greeting, _tcslen(greeting)); //在指定位置写一个字符串
		EndPaint(hWnd, &ps); //在指定的窗口绘画结束
		break;
	case WM_DESTROY://点击关闭按钮
		PostQuitMessage(0);//指定应用程序退出
		break;
	default:
		return DefWindowProc(hWnd, uMsg, wParam, lParam); //吧没用的消息丢给他处理
		break;
	}
	return 0;
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
	//第一步:注册窗口类,指定窗口类的名称与窗口回调函数
	WNDCLASSEX wcex = { 0 };
	wcex.cbSize = sizeof(WNDCLASSEX);  //注册窗口类的大小
	wcex.lpfnWndProc = WindowProc;     //处理消息,当有消息产生都交给他处理
	wcex.lpszClassName = szWindowClass;//注册窗口

	if (!RegisterClassEx(&wcex)) //判断是否注册成功
	{
		MessageBox(NULL, _T("注册窗口类失败"), _T("Tip"), NULL);
		return 1;
	}

	//第二步:创建窗口,指定注册窗口类,窗口标题,窗口的大小
	HWND hWnd = CreateWindow(
		szWindowClass,   //只有先注册了该窗口,才能创建该窗口
		szTitle,         //窗口名
		WS_OVERLAPPEDWINDOW | WS_MAXIMIZE, //窗口样式
		400,250, // 窗口x与y坐标
		500, 300,//窗口的宽度与高度
		NULL,
		NULL,
		hInstance,
		NULL
	);

	if (!hWnd) //窗口是否创建成功
	{
		MessageBox(NULL, _T("创建窗口失败!"), _T("Tip"), NULL);
		return 1;
	}

	//第三步:显示窗口
	ShowWindow(hWnd, nCmdShow);

	//第四步:开始消息循环
	MSG msg = { 0 }; //定义消息结构体变量
	while (GetMessage(&msg, NULL, 0, 0)) //判断是否存在消息
	{
		TranslateMessage(&msg); //将虚拟消息转化字符消息
		DispatchMessage(&msg);  //该函数调度一个消息给窗口程序
	}

	return (int)msg.wParam;
}

流程:
1.注册窗口
2.创建窗口
3.显示窗口
4.开始消息循环
5.窗口函数中处理窗口消息.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值