windows程序设计 显示一个窗口

时间:2023-03-10 01:38:41
windows程序设计 显示一个窗口
#include <windows.h>

HINSTANCE hinst;

LRESULT CALLBACK MainWndProc(HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
static TCHAR szClassName[] = TEXT("MainWClass");
WNDCLASSEX wcx;//窗口类
HWND hwnd;//窗口句柄
MSG msg;//消息
hinst = hInstance;//应用程序实例句柄,保存为全局变量。 //填充窗口类的数据结构
wcx.cbSize = sizeof(wcx);//结构体大小
wcx.style = CS_HREDRAW | CS_VREDRAW;//样式:窗口大小改变时重绘界面
wcx.lpfnWndProc = MainWndProc;//窗口消息处理函数
wcx.cbClsExtra = ;//不使用类内存
wcx.cbWndExtra = ;//不使用窗口内存
wcx.hInstance = hInstance;//所属的应用程序实例句柄
wcx.hIcon = LoadIcon(NULL, IDI_APPLICATION);//图标:默认
wcx.hCursor = LoadCursor(NULL, IDC_ARROW);//光标:默认
wcx.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);//背景:白色
wcx.lpszMenuName = NULL;//菜单:不使用
wcx.lpszClassName = szClassName;//窗口类名
wcx.hIconSm = (HICON)LoadImage(hInstance,
MAKEINTRESOURCE(),
IMAGE_ICON,
GetSystemMetrics(SM_CXSMICON),
GetSystemMetrics(SM_CYSMICON),
LR_DEFAULTCOLOR);//小图标 //注册窗口
if(!RegisterClassEx(&wcx))
{
return ;
} //创建窗口
hwnd = CreateWindow(
szClassName,//窗口名
TEXT("BASE"),//窗口标题
WS_OVERLAPPEDWINDOW,//窗口样式
CW_USEDEFAULT,//水平位置X:默认
CW_USEDEFAULT,//垂直位置Y:默认
CW_USEDEFAULT,//宽度:默认
CW_USEDEFAULT,//高度:默认
NULL,//父窗口:无
NULL,//菜单:使用窗口类的菜单
hInstance,//应用程序实例句柄
NULL//窗口创建时数据:无
); if(!hwnd)
{
return ;
} //显示窗口
ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd); //消息循环
while(GetMessage(&msg, NULL, , ))
{
TranslateMessage(&msg);//翻译消息
DispatchMessage(&msg);//分发消息
} return ;
} LRESULT CALLBACK MainWndProc(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
{
switch(umsg)
{
case WM_DESTROY:
PostQuitMessage();
break;
}
return DefWindowProc(hwnd, umsg, wParam, lParam);
}