Mit FillRect() in C++
Ich bin neu in der Verwendung von Grafiken in Visual C++. Ich versuche nur, um ein gefülltes Rechteck mit einer Farbe. Brauchen Sie Hilfe, um dies zu korrigieren...
RECT rect;
HDC hdc;
hdc=CreateDC(TEXT("DISPLAY"),NULL,NULL,NULL);
rect.left=30;
rect.right=100;
rect.top=50;
rect.bottom=200;
FillRect(hdc,&rect,(HBRUSH)(RGB(40,151,151)));
Der Fehler ist:
ERROR: The variable 'rect' is being used without being initialized.
- Wirklich? Ich hätte gedacht, dass das funktionieren würde. Sind Sie sicher, dass es nicht der ein oder andere "rect" irgendwo, dass dies gilt?
- Ist das ein Fehler oder eine Warnung?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese werden in der Regel eine Warnung, kein Fehler. In diesem Fall, es erscheint auch zweifelhaft.
Es könnte besser funktionieren, wenn Sie Sie initialisieren etwas wie:
Tun, beachten Sie die Verwendung von
CreateSolidBrush
-- casting einer Farbe zu einem HBRUSH scheint unwahrscheinlich, um zu arbeiten.Ihren code schlägt fehl, da dieser code:
Können Sie nicht gegossen, eine RGB-Farbe zu einem
HBRUSH
in irgendeiner sinnvollen Weise. Der einzige Weg, um eineHBRUSH
ist ein Fragen, das system, geben Sie einen.So, Sie müssen erstellen Sie eine echte Bürste über eine der API-Funktionen für diesen Zweck. Zum Beispiel
CreateSolidBrush
.Wenn Sie fertig sind mit dem Pinsel, rufen Sie
DeleteObject
zurückgeben von Ressourcen an das system.Als eine Allgemeine Regel, jedes mal, wenn Sie schreiben, eine Besetzung, die code als sehr verdächtig. Stets bemüht, code zu schreiben, ohne CASTET.