【C++】ウィンドウサイズ変更する5つの方法

【C++】ウィンドウサイズ変更する5つの方法

C++でのウィンドウサイズ変更

目次

WinAPIを使用したウィンドウサイズ変更

Windows API(WinAPI)を使用すると、ネイティブのWindowsアプリケーションでウィンドウサイズを変更できます。 ウィンドウサイズの変更には SetWindowPosMoveWindow 関数を使用します。

SetWindowPos を使用したウィンドウサイズ変更

#include <windows.h>

int main() {
    HWND hwnd = FindWindow(NULL, L"ウィンドウのタイトル"); // ウィンドウのタイトルで取得
    if (hwnd) {
        SetWindowPos(hwnd, NULL, 100, 100, 800, 600, SWP_NOZORDER | SWP_SHOWWINDOW);
    }
    return 0;
}

このコードでは、ウィンドウの位置とサイズを (100,100) の座標に移動し、サイズを 800×600 に変更します。

MoveWindow を使用したウィンドウサイズ変更

#include <windows.h>

int main() {
    HWND hwnd = FindWindow(NULL, L"ウィンドウのタイトル");
    if (hwnd) {
        MoveWindow(hwnd, 100, 100, 800, 600, TRUE);
    }
    return 0;
}

MoveWindowSetWindowPos と似ていますが、ウィンドウを再描画するオプションがついています。

SDLを使用したウィンドウサイズ変更

SDL(Simple DirectMedia Layer)を使用すると、マルチプラットフォームでウィンドウを作成し、サイズを変更できます。

SDLでのウィンドウサイズ変更

#include <SDL2/SDL.h>

int main() {
    SDL_Init(SDL_INIT_VIDEO);
    SDL_Window* window = SDL_CreateWindow("SDL Window", 
                                          SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 
                                          640, 480, SDL_WINDOW_RESIZABLE);
    
    SDL_Delay(2000); // 2秒待機
    SDL_SetWindowSize(window, 800, 600);

    SDL_Delay(2000); // 2秒待機
    SDL_DestroyWindow(window);
    SDL_Quit();
    return 0;
}

このコードでは最初に 640×480 のウィンドウを作成し、2秒後に 800×600 に変更します。

OpenGL(GLFW)を使用したウィンドウサイズ変更

OpenGL でウィンドウを作成する際は、GLFW を使用すると簡単にサイズ変更が可能です。

GLFWでのウィンドウサイズ変更

#include <GLFW/glfw3.h>

int main() {
    if (!glfwInit()) return -1;
    
    GLFWwindow* window = glfwCreateWindow(640, 480, "GLFW Window", NULL, NULL);
    if (!window) {
        glfwTerminate();
        return -1;
    }
    
    glfwMakeContextCurrent(window);

    // ウィンドウサイズを変更
    glfwSetWindowSize(window, 800, 600);

    while (!glfwWindowShouldClose(window)) {
        glfwPollEvents();
    }

    glfwDestroyWindow(window);
    glfwTerminate();
    return 0;
}

GLFW では glfwSetWindowSize を使用してウィンドウのサイズを変更できます。

Qtを使用したウィンドウサイズ変更

Qt では GUI アプリケーションのウィンドウサイズを簡単に変更できます。

Qtでのウィンドウサイズ変更

#include <QApplication>
#include <QWidget>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);
    QWidget window;
    window.setWindowTitle("Qt Window");
    window.resize(640, 480);
    window.show();
    
    // 3秒後にサイズ変更
    QTimer::singleShot(3000, [&]() { window.resize(800, 600); });

    return app.exec();
}

Qt では resize を使ってウィンドウサイズを変更できます。

コンソールウィンドウのサイズ変更

C++ ではコンソールウィンドウのサイズも変更できます。

コンソールウィンドウのサイズ変更

#include <windows.h>

int main() {
    HWND console = GetConsoleWindow();
    MoveWindow(console, 100, 100, 800, 600, TRUE);
    return 0;
}

このコードでは、コンソールウィンドウのサイズを変更しています。

まとめ

  • WinAPI では SetWindowPosMoveWindow を使用
  • SDL では SDL_SetWindowSize を使用
  • OpenGL(GLFW)では glfwSetWindowSize を使用
  • Qt では resize を使用
  • コンソールウィンドウのサイズも変更可能

これらの方法を活用すれば、目的に応じてウィンドウのサイズを自由に変更できます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です