×

VC++ WinMain函数介绍

默认

VC++ WinMain函数介绍

admin admin 发表于2025-09-19 浏览5 评论0

WinMain函数介绍

鼠标消息处理

#include <Windows.h>

//程序入口
//WINAPI __stdcall 参数传递顺序  从右到做左依次入栈 ,返回前情况栈堆
int WINAPI WinMain(
	HINSTANCE hInstance, //应该程序实例句柄
	HINSTANCE hPrevInstance, //上一个应该程序句柄,再win32环境下,一般为NULL,
	LPSTR lpCMdLine, //char * argv[]
	int nShowCmd)  //显示命令 最大化,最小化 正常
{

	//1.设计一个窗口
	//2.注册窗口
	//3.创建窗口
	//4.显示和更新
	//5.通过循环取消息
	//6.处理消息 窗口过程

	//1 .设计一个窗口
	WNDCLASS  wc;
	wc.cbClsExtra = 0;//类的额外的内存
	wc.cbWndExtra = 0;//窗口的附加内存
	wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); //设置背景
	wc.hCursor = LoadCursor(NULL, IDC_HAND); //设置光标 ,如果第一个参数为NULL,使用系统默认的光标
	wc.hIcon = LoadIcon(NULL, IDI_ERROR); //设置图标 ,如果第一个参数为NULL,使用系统默认的光标
	wc.hInstance = hInstance; //应用程序的实例句柄,传同义Windowsd 形参
	//wc.lpfnWndProc = WindowProc; //回调函数
	wc.lpszClassName = TEXT("WIN");//指定窗口的类名称
	wc.lpszMenuName = NULL;//菜单名称
	wc.style = 0;//显示风格 0代表默认风格

	//2.注册窗口
	RegisterClass(&wc);

	//3.创建窗口

	/*
	lpClassName,  类名
	lpWindowName,  标题名
	dwStyle,  风格 WS_OVERLSPPEDEINFOW
	x,
	y,\
	nWidth, 宽
	nHeight, 高
	hWndParent,  父窗口
	hMenu,  菜单
	hInstance,  实例句柄
	lpParam) 附加值  鼠标附加值
	*/
	HWND hwnd = CreateWindow(wc.lpszClassName, TEXT("WIndows"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);

	//4.显示和更新
	ShowWindow(hwnd, SW_SHOWNORMAL);
	UpdateWindow(hwnd);


	//5.通过循环取消息
	MSG msg;
	while (1)
	{
		/*
		_Out_ LPMSG lpMsg,
		_In_opt_ HWND hWnd,
		_In_ UINT wMsgFilterMin,消息的最小值
		_In_ UINT wMsgFilterMax) 填0代表所有消息;
		*/
		if (GetMessage(&msg, NULL, 0, 0) == FALSE)
		{
			//如果关闭就退出
			break;
		}

		//翻译消息
		TranslateMessage(&msg);

		//分发消息
		DispatchMessage(&msg);





		return 0;
	}

}