Rechteck in MFC
Ich versuche zu zeichnen Sie ein Rechteck auf eine mfc-Fenster mit den Anweisungen: http://msdn.microsoft.com/en-US/library/8w4fzfxf%28v=VS.80%29.aspx . Viel, obwohl ich versucht habe, erscheint das Rechteck auf den Rand eines Fensters, der für den gesamten it. Was ist das problem mit dem folgenden code int die Funktion OnDraw(CDC* pDC) ? Was kann getan werden, um ein Rechteck zu zeichnen mit bestimmten Koordinaten im Fenster?
CPen penBlack;
penBlack.CreatePen(PS_SOLID, 3, RGB(0, 0, 0));
CPen* pOldPen = pDC->SelectObject(&penBlack);
CPoint pt(10, 10);
CSize sz(100, 50);
CRect myRect(pt, sz);
GetClientRect(&myRect);
pDC->Rectangle(&myRect);
- Warum nennst du
GetClientRect
? Es scheint, dass dieser Aufruf überschreibt die zuvor mit set-up-Koordinaten inmyRect
. - Sie müssen richtig sein, aber es wurde vorgeschlagen, in der Anweisungen.
- Sie noch nicht kopiert, die Anweisungen genau. Du hast nur kopiert und eingefügt haben, die Teile in zufälliger Reihenfolge. Es ruft die client-Rechteck, dann schrumpft es von 20 Pixel in jede Richtung, dann zieht das Rechteck.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Drop der Aufruf
GetClientRect
.Wird diese Funktion schreiben, um das Rechteck-Objekt übergeben, so dass durch den Aufruf, Sie überschreiben Ihre spezifischen Koordinaten, die Sie einrichten, nur vor dem Aufruf mit
pt
undsz
.Als @stakx vorgeschlagen, sollten Sie entfernen Sie die
GetClientRect
, die bekommt das ganze Fenster client-Bereich und überschreibt Ihre eigenen Rechteck.Als dem Unterricht, es ruft zuerst der gesamte client-Bereich und verkleinert das Rechteck, um das Rechteck zu zeichnen, so
GetClientRect
wird dort gebraucht.Diese Website wird Ihnen helfen, um das Rechteck zu zeichnen in mfc-Dialogfeld-basierten Anwendung.
http://cboard.cprogramming.com/windows-programming/37788-drawing-mfc.html
http://cboard.cprogramming.com/cplusplus-programming/102490-cplusplus-mfc-rectangle-class.html
Nicht verwenden GetClientRect().Sie überschreiben Ihre bisherigen Koordinaten.