2015-10-31 3 views
1

La méthode standard de FillRect dans GDI estC++ Windows32 GDI Fill Triangle

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

Mais comment suis-je pour remplir Triangle? Comment est-ce que j'aborderais ceci sans employer d'autres ressources?

+1

dessiner un polygone? – jpw

+0

Si je me souviens bien, il y a un remplissage polygonal. Un triangle est un cas particulier de polygone. Ou il suffit probablement de dessiner un triangle avec un pinceau de fond et un mode de remplissage sélectionné. –

+0

Vous voulez * Dessiner * ou * Remplir *? Si vous voulez remplir, vous devez d'abord créer une région avec CreatePolygonRgn, puis utiliser FillRgn pour le remplir (avec un pinceau). –

Répondre

2

Utilisez la fonction Polygon qui utilise le pinceau actuel pour remplir le polygone. L'exemple suivant dessine un triangle est indiqué en rouge et rempli de bleu:

#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); 

Le résultat ressemble à ceci:

Triangle