Suche mehr Brushes...
-
Hallo.
Entweder bin ich blind oder es gibt einfach keine Möglichkeit...
Ich suche eine Methode um mir eigene Brushes zu erstellen, denn ich habe bis jetzt nur 5 Standard-Brushes gefunden, von Weiß bis hin zu Schwarz...Gruß Speedy_92
-
http://msdn.microsoft.com/en-us/library/ms532371(VS.85).aspx
CreateSolidBrush könnte das sein, was du suchst

-
Ganz genau was ich suche

Vielen dank
-
Aber warum funktioniert folgender Code nicht? hdc ist mein Handle für den Device Context x- und yPos die Länge der Seiten des Clientbereiches:
SelectObject(hdc, GetStockObject((int)CreateSolidBrush(RGB(0, 255, 255)))); Rectangle(hdc, 10, 10, xPos - 10, yPos - 10);
-
Wieso nochmal ein GetStockObject?
Und vergiß nicht, den Brush freizugeben, wenn Du ihn nicht mehr brauchst.
-
Weil ich muss es doch in ein HGDIOBJ machen
Habs geändert... und jetzt meckert er, dass es kein HGDIOBJ ist... und mit welcher Methode geb ich es frei? Mit DeleteObject?
-
HBRUSH erbt leider nicht von HGDIOBJ (läßt sich in C nicht bewerkstelligen). Kannst aber einfach nach HGDIOBJ casten.
Mit DeleteObject?
genau. Aber erst nachdem der Brush nicht mehr im DC ausgewählt ist. Also entweder so:
HBRUSH newBrush = CreateSolidBrush(RGB(0, 255, 255)); HBRUSH prevBrush = (HBRUSH) SelectObject(hdc, (HGDIOBJ) newBrush)); Rectangle(hdc, 10, 10, xPos - 10, yPos - 10); SelectObject(hdc, (HGDIOBJ) prevBrush); DeleteObject(newBrush);oder - insbesondere falls du mehrere Objete in den DC selektierst -
SaveDC(dc); HBRUSH newBrush = CreateSolidBrush(RGB(0, 255, 255)); SelectObject(hdc, (HGDIOBJ) newBrush)); Rectangle(hdc, 10, 10, xPos - 10, yPos - 10); RestoreDC(dc, -1); DeleteObject(newBrush);~Jaja, ich weiß, GDI ist zum kotzen..
~
-
*EDIT: Habe es verstanden und damit kann der Thread beendet werden
