显示基本图形界面第一天

#include <windows.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
//窗口处理函数声明

//图形框架,入口函数WinMain ,窗口处理函数WndProc

//入口函数WinMain
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInst, //父窗口句柄
LPSTR lpszCmdLine, //指向命令行参数的指针
int nCmdshow //窗口状态
) {
//窗口的初始化-->定义初始变量
HWND hwnd; //定义当前窗口句柄实例
MSG Msg; //定义消息变量
WNDCLASS wndclass; //定义窗口类变量
char lpszClassName[] = "窗口"; //定义窗口类名
char lpszTitle[] = "My Window"; //定义窗口标题

//窗口类的初始化--》窗口类的初始化
wndclass.style = 0; //窗口类型为缺省类型
wndclass.lpfnWndProc = WndProc; //定义窗口处理函数
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hInstance = hInstance; //指向当前句柄实例
//定义资源
wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.lpszMenuName = NULL;
wndclass.lpszClassName = lpszClassName;

//窗口类的注册
if (!RegisterClass(&wndclass)) {
{
MessageBeep(0);
return FALSE;
}
}

//窗口类的创建
hwnd = CreateWindow(
lpszClassName,
lpszTitle,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL, //此窗口无父窗口
NULL, //此窗口无主菜单
hInstance, //创建此应用程序的当前句柄
NULL
);

//窗口类的显示
ShowWindow(hwnd, nCmdshow);
UpdateWindow(hwnd);

//消息循环
while (GetMessage(&Msg, NULL, 0, 0)) {
TranslateMessage(&Msg);
DispatchMessage(&Msg); //将消息送入WinProc中
}

return Msg.wParam;
}
//窗口处理函数
LRESULT CALLBACK WndProc(
HWND hwnd,
UINT message,
WPARAM wParam,
LPARAM lParam
)
{
switch (message) {
case WM_DESTROY:
PostQuitMessage(0);
default:
return DefWindowProc(hwnd, message, wParam, lParam);
}
return 0;
}

原文地址:https://www.cnblogs.com/nanfengnan/p/13699063.html