#pragma once
#include <windows.h>
#include <tchar.h>
//窗口回调
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
//创建事件
bool OnCreate(HWND hwnd);
TCHAR szWindowClass[]=TEXT("哈哈");
int APIENTRY _tWinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPTSTR lpCmdLine,int nCmdShow)
{
WNDCLASSEX wcex={0};
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(NULL, MAKEINTRESOURCE(IDI_APPLICATION));
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wcex.lpszMenuName = NULL;
wcex.lpszClassName = szWindowClass;
wcex.hIconSm = LoadIcon(NULL, MAKEINTRESOURCE(IDI_APPLICATION));
RegisterClassEx(&wcex);
HWND hWnd;
hWnd = CreateWindow(szWindowClass, TEXT("标题"), WS_OVERLAPPEDWINDOW,0, 0, 600, 400, NULL, NULL, hInstance, NULL);
if (!hWnd)return FALSE;
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
MSG msg={0};
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int) msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;
switch (message)
{
case WM_CREATE:
OnCreate(hWnd);break;
case WM_COMMAND:
{
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
// 分析菜单选择:
switch (wmId)
{
case IDOK:break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
}
break;
case WM_PAINT:
{
hdc = BeginPaint(hWnd, &ps);
// TODO: 在此添加任意绘图代码...
EndPaint(hWnd, &ps);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
bool OnCreate(HWND hwnd)
{
//窗口居中
int x=GetSystemMetrics(SM_CXSCREEN);
int y=GetSystemMetrics(SM_CYSCREEN);
RECT WindowRect;
GetWindowRect(hwnd,&WindowRect);
int cx=(x-WindowRect.right)/2;
int cy=(y-WindowRect.bottom)/2;
SetWindowPos(hwnd,NULL,cx,cy,NULL,NULL,SWP_SHOWWINDOW|SWP_NOSIZE);
return true;
}
win32SDK窗口程序
最新推荐文章于 2024-04-16 08:25:23 发布