Windows编程创建窗口流程

本文介绍了一个简单的Windows应用程序设计过程,包括窗口类的设计、注册、创建及消息循环等关键步骤,并提供了一个具体的示例代码,展示了如何捕捉键盘输入并弹出消息框。

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

#include <windows.h>
#include <stdio.h>

LPCTSTR ClassName = "My";
LPCTSTR msgName = "Frist";

LRESULT CALLBACK MyWinProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
	//1.设计窗口类
	//UINT        style;
	//WNDPROC     lpfnWndProc;
	//int         cbClsExtra;
	//int         cbWndExtra;
	//HINSTANCE   hInstance;
	//HICON       hIcon;
	//HCURSOR     hCursor;
	//HBRUSH      hbrBackground;
	//LPCWSTR     lpszMenuName;
	//LPCWSTR     lpszClassName;
	//定义和配置窗口对象
	WNDCLASS wndcls;
	wndcls.cbClsExtra = NULL;
	wndcls.cbWndExtra = NULL;
	wndcls.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
	wndcls.hIcon = LoadIcon(NULL, IDI_APPLICATION);
	wndcls.hCursor = LoadCursor(NULL,IDC_ARROW);
	wndcls.hInstance = hInstance;
	//定义交互响应
	wndcls.lpfnWndProc = MyWinProc;
	//定义窗口代号
	wndcls.lpszClassName = ClassName;
	wndcls.lpszMenuName = NULL;
	wndcls.style = CS_HREDRAW | CS_VREDRAW;
	//2.注册窗口类
	RegisterClass(&wndcls);
	//3.创建窗口
	HWND hwnd = CreateWindow(ClassName, msgName, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT,
		CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);
	//4.显示和刷新窗口
	ShowWindow(hwnd, SW_SHOWNORMAL);
	UpdateWindow(hwnd);
	//5.消息循环 
	//GetMessage只有再接受到WM_QUIT消息时返回值为0
	//TranslateMessage 翻译消息 
	//DispatchMessage 分配消息
	MSG msg;
	while (GetMessage(&msg,NULL,NULL,NULL))
	{
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}
	return msg.wParam;
};

LRESULT CALLBACK MyWinProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	LRESULT ret = 0;
	switch (uMsg)
	{
	case WM_CHAR:
		char szChar[20];
		sprintf_s(szChar, "您刚才按下了,%c",wParam);
		MessageBox(hwnd, szChar, "char", NULL);
		break;
	default:
		return DefWindowProc(hwnd, uMsg, wParam, lParam);
	}
	return ret;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值