C++GDI给绘制的三角形上色
时间: 2024-02-15 22:18:39 浏览: 27
要给C++中使用GDI绘制的三角形上色,可以使用GDI提供的函数来设置画刷(brush)的颜色和风格。
下面是一个示例代码,演示如何使用GDI绘制一个三角形并给其上色:
```cpp
#include <windows.h>
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
// 创建窗口
HWND hWnd;
WNDCLASSEX wcex;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(hInstance, IDI_APPLICATION);
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
wcex.lpszMenuName = NULL;
wcex.lpszClassName = "TriangleColoring";
wcex.hIconSm = LoadIcon(wcex.hInstance, IDI_APPLICATION);
if (!RegisterClassEx(&wcex))
{
MessageBox(NULL, "窗口注册失败!", "错误", MB_ICONERROR);
return 1;
}
hWnd = CreateWindow("TriangleColoring", "Triangle Coloring Demo", WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 800, 600, NULL, NULL, hInstance, NULL);
if (!hWnd)
{
MessageBox(NULL, "窗口创建失败!", "错误", MB_ICONERROR);
return 1;
}
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
// 消息循环
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int)msg.wParam;
}
void DrawTriangle(HDC hdc)
{
POINT points[3] = { {100, 100}, {200, 200}, {300, 100} }; // 定义三角形的三个顶点坐标
// 创建画刷并设置颜色为红色
HBRUSH hBrush = CreateSolidBrush(RGB(255, 0, 0));
// 选择画刷
HBRUSH hOldBrush = (HBRUSH)SelectObject(hdc,***