窗口创建失败,帮忙看看,行吗?
  • 板块学术版
  • 楼主RedDog
  • 当前回复10
  • 已保存回复10
  • 发布时间2023/9/2 12:33
  • 上次更新2023/11/2 23:55:53
查看原帖
窗口创建失败,帮忙看看,行吗?
1048885
RedDog楼主2023/9/2 12:33
#include <Windows.h>
#include <tchar.h>

static TCHAR szWindowClass[] = _T("WindowClass");
static TCHAR szTitle[] = _T("我的第一个窗口程序");

LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	PAINTSTRUCT ps;
	HDC hdc;
	TCHAR greeting[] = _T("大家好!");

	switch (uMsg)
	{
	case WM_CLOSE:
	{
		int iRet = MessageBox(hWnd, _T("要关闭窗口吗?"), _T("Tip"), MB_OKCANCEL);
		if (iRet == IDOK) return DefWindowProc(hWnd, uMsg, wParam, lParam);
	}
	break;
	case WM_SIZE:
	{
		if (wParam == SIZE_MAXIMIZED) {
			MessageBox(hWnd, _T("窗口被最大化啦!"), _T("Tip"), MB_OK);
		}
	}
	break;
	case WM_CREATE:
		MessageBox(hWnd, _T("窗口被创建啦!"), _T("Tip"), MB_OK);
		break;
	case WM_PAINT:
		hdc = BeginPaint(hWnd, &ps);
		TextOut(hdc, 5, 5, greeting, _tcslen(greeting));
		EndPaint(hWnd, &ps);
		break;
	case WM_DESTROY:
		PostQuitMessage(0);
		break;
	default:
		return DefWindowProc(hWnd, uMsg, wParam, lParam);
		break;
	}
	return 0;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
	WNDCLASSEX wcex = { 0 };
	wcex.cbSize = sizeof(WNDCLASSEX);
	wcex.lpfnWndProc = WindowProc;
	wcex.lpszClassName = _T("我的第一个窗口程序");

	if (!RegisterClassEx) {
		MessageBox(NULL, _T("注册窗口失败"), _T("Tip"), MB_OK);
		return 1;
	}

	HWND hWnd = CreateWindow(
		_T("我的第一个窗口程序"),
		szTitle,
		WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU,
		50,50,
		500, 300,
		NULL,
		NULL,
		wcex.hInstance,
		NULL
	);

	if (!hWnd)
	{
		MessageBox(NULL, _T("创建窗口失败"), _T("Tip"), MB_OK);
		return 1;
	}

	ShowWindow(hWnd, nCmdShow);
	MSG msg = { 0 };
	while (GetMessage(&msg, NULL, 0, 0)) {
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}

	return (int)msg.wParam;
}

能帮忙看一下吗?

2023/9/2 12:33
加载中...