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;
}
}