首页 > 其他分享 >1213

1213

时间:2023-03-10 14:11:06浏览次数:44  
标签:1213 wc 消息 USEDEFAULT 窗口 NULL CW

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

相关文章