【问题标题】:C++ Windows32 GDI Fill TriangleC++ Windows32 GDI 填充三角形
【发布时间】:2015-10-31 11:25:11
【问题描述】:

GDI中FillRect的标准方式是

Rectangle(hdc, x_, y_, x_ + width_, y_ + height_);

但是我该如何填充三角形呢? 我将如何在不使用其他资源的情况下解决这个问题?

【问题讨论】:

  • 我记得有一个多边形填充。三角形是多边形的一种特殊情况。或者只用背景画笔绘制一个三角形并选择一些填充模式就足够了。
  • 您要绘制还是填充?如果要填充,首先使用 CreatePolygonRgn 创建一个区域,然后使用 FillRgn 填充它(使用一些画笔)。

标签: c++ windows gdi


【解决方案1】:

使用Polygon 函数,该函数使用当前画笔填充多边形。以下示例绘制了一个以红色勾勒并用蓝色填充的三角形:

#include <windows.h>
#include <windowsx.h>

...

HPEN hPen = CreatePen(PS_SOLID, 2, RGB(255, 0, 0));
HPEN hOldPen = SelectPen(hdc, hPen);

HBRUSH hBrush = CreateSolidBrush(RGB(0, 0, 255));
HBRUSH hOldBrush = SelectBrush(hdc, hBrush);

POINT vertices[] = { {200, 100}, {300, 300}, {100, 300} };
Polygon(hdc, vertices, sizeof(vertices) / sizeof(vertices[0]));

SelectBrush(hdc, hOldBrush);
DeleteObject(hBrush);

SelectPen(hdc, hOldPen);
DeleteObject(hPen);

结果如下:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-01
    • 2019-01-23
    • 1970-01-01
    • 2020-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多