eigentlich simple GDI-Frage
-
u.g. Code habe ich in der Load-Routine meines Forms eingefügt um gleich nach Programmstart ein einfaches Rectangle abzubilden. Leider sehe ich kein Rectangle. Wenn ich diese einfache Routine an ein Button-Click-Event hänge gibt es keine Probleme. Auch der Aufruf Invalidate() hatte keinen Erfolg. Was nun?
System::Drawing::Graphics^ FormGraphic; System::Drawing::Pen^ drawingPen; drawingPen = gcnew System::Drawing::Pen(System::Drawing::Color::Black); System::Drawing::Rectangle rectangle(100, 100, 100, 150); FormGraphic= this->CreateGraphics(); FormGraphic->DrawRectangle(drawingPen, rectangle);
Vielen Dank,
Bra.
-
Zeichne in der OnPaint()-Methode. Habe ich das recht verstanden, dass Du in der OnInitDialog() zeichnest? Dann wird beim Aufbau des Dialogs dein gezeichnetes sofort wieder verworfen, da die OnPaint() ausgeführt wird. Du musst eh in der OnPaint() zeichnen, wenn Du willst, dass dein Rechteck bestehen bleibt, wenn das Fenster bewegt wird.
Zum zeichnen in der OnPaint() benutze CPaintDC.
-
tschuldigung, hätte konkreter sein müssen.
die routine wurde unter .net 2.0 geschrieben, nicht unter WIN32API.Bra.
-
Es gibt leider kein passendes Forum für deine Frage... du bist hier genauso falsch wie im .net Forum
Wenn du magst schieb ich dich rüber. Über ein passendes Unterforum wird schon nachgedacht.
-
na dann lass mich mal hier, vielleicht verirrt sich ja noch ein .netter...
-
Ich denke, dass du das in .NET geschrieben hast, sollte an meiner Antwort nicht viel ändern - ausser evtl. die Namen der Funktionen. Dein Rechteck wird überzeichnet werden.
-
Dieser Thread wurde von Moderator/in estartu aus dem Forum MFC (Visual C++) in das Forum C++/CLI mit .NET verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.