C++Windowsh库绘制800x600的窗口设置255255255颜色边框232232232颜色的长200高于窗口高相同的的长方形位于00坐标并且设置背景为240242245颜色窗口设为不可调并且隐藏最小化按钮
以下是使用C++Windows.h库绘制800x600的窗口,设置颜色和边框的代码:
#include <iostream>
#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)
{
// 注册窗口类
const char* CLASS_NAME = "MyWindowClass";
WNDCLASS wc = {};
wc.lpfnWndProc = WindowProc;
wc.hInstance = hInstance;
wc.lpszClassName = CLASS_NAME;
RegisterClass(&wc);
// 创建窗口
HWND hwnd = CreateWindowEx(
0, // 扩展风格
CLASS_NAME, // 窗口类名
"My Window", // 窗口标题
WS_OVERLAPPEDWINDOW, // 窗口样式
CW_USEDEFAULT, CW_USEDEFAULT, // 窗口位置
800, 600, // 窗口大小
NULL, // 父窗口句柄
NULL, // 菜单句柄
hInstance, // 应用程序实例句柄
NULL // 窗口创建参数
);
if (hwnd == NULL)
{
return 0;
}
// 设置窗口背景颜色
HBRUSH hBrush = CreateSolidBrush(RGB(240, 242, 245));
SetClassLongPtr(hwnd, GCLP_HBRBACKGROUND, (LONG_PTR)hBrush);
// 设置边框颜色
SetClassLongPtr(hwnd, GCLP_BORDERCOLOR, (LONG_PTR)RGB(232, 232, 232));
// 设置窗口不可调整大小
SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) & ~WS_SIZEBOX);
// 隐藏最小化按钮
SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) & ~WS_MINIMIZEBOX);
// 显示窗口
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_DESTROY:
PostQuitMessage(0);
return 0;
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hwnd, &ps);
// 绘制长方形
HBRUSH hBrush = CreateSolidBrush(RGB(255, 255, 255));
SelectObject(hdc, hBrush);
Rectangle(hdc, 0, 0, 200, 600);
EndPaint(hwnd, &ps);
}
return 0;
}
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
这段代码将创建一个800x600大小的窗口,设置背景颜色为(240,242,245)并绘制一个长为200,高度与窗口相同的长方形,边框颜色为(232,232,232)。同时,窗口被设置为不可调整大小,并且隐藏了最小化按钮
原文地址: https://www.cveoy.top/t/topic/iavB 著作权归作者所有。请勿转载和采集!