21xrx.com
2025-04-25 01:35:07 Friday
文章检索 我的文章 写文章
如何在 C++ 中设置窗口大小
2023-06-23 19:42:13 深夜i     33     0
C++ 窗口大小 设置

C++ 是一种流行的编程语言,被广泛应用于游戏开发和桌面应用程序开发。在进行桌面应用程序开发时,设置窗口大小是一个常见的需求。本文将介绍如何在 C++ 中设置窗口大小。

在 C++ 中设置窗口大小需要使用窗口句柄和 Win32 API 函数。窗口句柄是一个用于标识窗口的唯一标识符,通常使用 HWND 类型表示。Win32 API 函数是 Windows 提供的一系列函数,可以操作窗口、消息等。

下面是一个示例代码,展示如何在 C++ 中设置窗口大小:

#include <windows.h>
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
  const LPCWSTR pClassName = L"MyWindowClass";
  const LPCWSTR pWindowTitle = L"My Window";
  // 1. 注册窗口类 (Register the window class)
  WNDCLASSEX wc{};
  wc.cbSize = sizeof(WNDCLASSEX);
  wc.style = CS_HREDRAW | CS_VREDRAW;
  wc.lpfnWndProc = WindowProc;
  wc.hInstance = hInstance;
  wc.hCursor = LoadCursor(NULL, IDC_ARROW);
  wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
  wc.lpszClassName = pClassName;
  if (!RegisterClassEx(&wc))
  {
    MessageBox(NULL, L"Failed to register window class!", L"Error", MB_ICONERROR | MB_OK);
    return 0;
  }
  // 2. 创建窗口 (Create the window)
  HWND hwnd = CreateWindowEx(
    0,         // Optional window styles (0 for none)
    pClassName,     // Window class name
    pWindowTitle,    // Window title
    WS_OVERLAPPEDWINDOW,// Window style
    CW_USEDEFAULT,   // X position
    CW_USEDEFAULT,   // Y position
    800,        // Width
    600,        // Height
    NULL,        // Parent window (NULL for desktop)
    NULL,        // Menu handle (NULL for no menu)
    hInstance,     // Instance handle
    NULL        // Additional application data (NULL if none)
  );
  if (!hwnd)
  {
    MessageBox(NULL, L"Failed to create window!", L"Error", MB_ICONERROR | MB_OK);
    return 0;
  }
  ShowWindow(hwnd, nShowCmd);
  // 3. 消息循环 (Run the message loop)
  MSG msg{};
  while (GetMessage(&msg, NULL, 0, 0))
  {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
  }
  return msg.wParam;
}
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
  switch (uMsg)
  {
  case WM_DESTROY:
    PostQuitMessage(0);
    return 0;
  default:
    break;
  }
  return DefWindowProc(hwnd, uMsg, wParam, lParam);
}

上面的代码实现了一个基本的窗口应用程序。窗口的大小在 `CreateWindowEx` 函数中进行了设置,窗口宽度为 800,窗口高度为 600。

如果想要改变窗口大小,可以使用 `SetWindowPos` 函数。这个函数可以设置窗口的位置和大小,具体的用法可以参考 Win32 API 文档。

总的来说,在 C++ 中设置窗口大小需要使用窗口句柄和 Win32 API 函数。要设置窗口大小,可以在创建窗口的时候指定窗口的宽度和高度,也可以使用 `SetWindowPos` 函数在运行时改变窗口大小。

  
  

评论区

请求出错了