C言語で実行ウインドウの背景色を変える
Windows API 関数を使えば、C 言語で実行ウィンドウの背景を変更できます。手順は以下の通りです。
- WindowsのAPI関数を扱うには`Windows.h`ヘッダファイルを含めます。
#include <windows.h>
- ウィンドウのクラスを作成し、そのウィンドウのクラスを登録します。
const char* className = "MyWindowClass";
WNDCLASSEX wc = { 0 };
wc.cbSize = sizeof(WNDCLASSEX);
wc.lpfnWndProc = DefWindowProc;
wc.hInstance = GetModuleHandle(NULL);
wc.lpszClassName = className;
RegisterClassEx(&wc);
- ウィンドウを作成し、スタイルと当初の背景色を設定する。
HWND hwnd = CreateWindowEx(0, className, "My Window", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 800, 600, NULL, NULL, GetModuleHandle(NULL), NULL);
HBRUSH backgroundBrush = CreateSolidBrush(RGB(0, 0, 0)); // 设置背景颜色为黑色
SetClassLongPtr(hwnd, GCLP_HBRBACKGROUND, (LONG)backgroundBrush);
- ウィンドウを表示して、メッセージループを開始します。
ShowWindow(hwnd, SW_SHOWDEFAULT);
UpdateWindow(hwnd);
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
CreateSolidBrush関数を利用して背景用のブラシを作成し、SetClassLongPtr関数を使用してそのブラシをウィンドウクラスの背景に設定することで、ウィンドウの背景色を変更できます。RGBで色を指定して好きな色を設定することができます。
基本的なウィンドウの作成と背景色の設定のみを行うコードです。より複雑なウィンドウのスタイルと描画効果が必要な場合は、追加のWindows API関数を使いましょう。