C++Windowsh库绘制800x600的窗口设置255255255颜色边框232232232颜色的200x600的长方形位于00坐标并且设置背景为240242245颜色
以下是使用C++和Windows.h库绘制800x600窗口,设置颜色和绘制长方形的示例代码:
#include <Windows.h>
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
// 注册窗口类
WNDCLASS wc = {};
wc.lpfnWndProc = WindowProc;
wc.hInstance = hInstance;
wc.lpszClassName = L"MyWindowClass";
RegisterClass(&wc);
// 创建窗口
HWND hwnd = CreateWindowEx(
0,
L"MyWindowClass",
L"Window Title",
WS_OVERLAPPEDWINDOW,
0, 0, 800, 600,
NULL,
NULL,
hInstance,
NULL
);
// 设置窗口背景颜色
HBRUSH hBrush = CreateSolidBrush(RGB(240, 242, 245));
SetClassLongPtr(hwnd, GCLP_HBRBACKGROUND, (LONG_PTR)hBrush);
// 显示窗口
ShowWindow(hwnd, nCmdShow);
// 消息循环
MSG msg = {};
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hwnd, &ps);
// 绘制长方形
RECT rect = { 0, 0, 200, 600 };
HBRUSH hBrush = CreateSolidBrush(RGB(255, 255, 255));
HBRUSH hOldBrush = (HBRUSH)SelectObject(hdc, hBrush);
HPEN hPen = CreatePen(PS_SOLID, 1, RGB(232, 232, 232));
HPEN hOldPen = (HPEN)SelectObject(hdc, hPen);
Rectangle(hdc, rect.left, rect.top, rect.right, rect.bottom);
SelectObject(hdc, hOldBrush);
SelectObject(hdc, hOldPen);
DeleteObject(hBrush);
DeleteObject(hPen);
EndPaint(hwnd, &ps);
break;
}
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
return 0;
}
上述代码会创建一个800x600的窗口,并将背景颜色设置为(240,242,245)。在WM_PAINT消息中,会绘制一个200x600的长方形,填充颜色为(255,255,255),边框颜色为(232,232,232),位于(0,0)坐标。
请注意,该代码需要在Windows平台上使用C++编译器进行编译和运行
原文地址: https://www.cveoy.top/t/topic/iavi 著作权归作者所有。请勿转载和采集!