21xrx.com
2024-11-05 17:18:25 Tuesday
登录
文章检索 我的文章 写文章
如何在 C++ 中设置窗口大小
2023-06-23 19:42:13 深夜i     --     --
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` 函数在运行时改变窗口大小。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复