GDI中FillRect的标准方法是

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

但是我如何填充三角形?
在不使用其他资源的情况下,我将如何处理?

最佳答案

使用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);

结果看起来像这样:

c&#43;&#43; - C&#43;&#43; Windows32 GDI填充三角形-LMLPHP

关于c++ - C++ Windows32 GDI填充三角形,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33447305/

10-12 15:06