include<Windows.h>
include "framework.h"
LRESULT CALLBACK WindowsProc(
In HWND hWnd,
In UINT Msg,
In WPARAM wParam,
In LPARAM lParam);
// __stdcall 参数的传入顺序:右向左,入栈,函数返回前清空栈
int WINAPI WinMain(
HINSTANCE hInstance,//应用程序实例句柄
HINSTANCE hPrevInstance, //上一个应用程序句柄,在win32环节一般为null 无作用
LPWSTR lpCmdLine, // char* argv[]
int nCmdShow) {//显示命令,最大最小化正常
//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_ARROW);//设置光标,第一个参数null 系统光标
wc.hIcon = LoadIcon(NULL, IDI_ERROR);// 图标 如果第一个参数NULL,代表系统提供图标
wc.hInstance = hInstance;//应用程序实例句柄
wc.lpfnWndProc = WindowsProc;//回调函数
wc.lpszClassName = TEXT("first");// 指定窗口类名称
wc.lpszMenuName = NULL;//菜单
wc.style = 0; // 显示风格 0代表默认风格
//2.注册窗口
RegisterClass(&wc);
//3.创建窗口
/*lpClassName, 类名
lpWindowName, 标题名字
dwStyle, // WS_OVERLAPPEDWINDOW//风格
x, 显示坐标 // CW_USEDEFAULT
y
nWidth,宽高
nHeight,
hWndParent, //父窗口 无即NULL
hMenu,//菜单NULL
hInstance, //实例句柄
lpParam //附加值 鼠标的附加等 null
*/
/*HWND hwnd = CreateWindow(wc.lpszClassName,
TEXT("Windows"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, nullptr, nullptr, hInstance, nullptr);*/
HWND hwnd = CreateWindowW(wc.lpszClassName, TEXT("Windows"), WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr);
// 4.显示更新
ShowWindow(hwnd, SW_SHOWNORMAL);
UpdateWindow(hwnd);
//5.通过循环取消息
MSG msg;
/*
HWND hwnd; //主窗口
UINT message;//具体消息名称
WPARAM wParam;//附加消息,键盘消息
LPARAM lParam;// 附加消息,鼠标
DWORD time;// 消息产生的时间
POINT pt;//附加消息 鼠标消息 (坐标点x,y)
*/
while (1) {
/*
_Out_ LPMSG lpMsg,//消息
_In_opt_ HWND hWnd,//捕获窗口 填入NULL代表捕获所有窗口和者进程消息
_In_ UINT wMsgFilterMin, //最小最大过滤消息 一般为零
_In_ UINT wMsgFilterMax); // 填0代表捕获所有消息
*/
if (GetMessage(&msg, NULL, 0, 0) == false) {
break;
}
//不为false
//翻译消息
TranslateMessage(&msg);
//分发消息
DispatchMessage(&msg);
}
return 0;
}
//CALLBACK __stdcall 参数的传入顺序:右向左,入栈,函数返回前清空栈
LRESULT CALLBACK WindowsProc(
In HWND hWnd, //消息产生的窗口句柄
In UINT Msg,//具体消息名称 ,WM_XXX消息名(消息名A)A代表鼠标等
In WPARAM wParam,//键盘消息
In LPARAM lParam //鼠标消息
) {
//换回默认值
return DefWindowProc(hWnd, Msg, wParam,lParam);
}
标签:1213,wc,消息,USEDEFAULT,窗口,NULL,CW From: https://www.cnblogs.com/tsqo/p/17203158.html