Hallo,
ich sitze jetzt seit einigen Stunden an einem Problem und mittlerweile ist es halb 3 nachts… O_o
Vielleicht kann mir ja jemand helfen…
Ich habe eine MFC Dialoganwendung erstellt.
In diesem Dialog liegt ein größeres Gruppenfeld (nennen wir es IDC_FELD).
In der Dlg-Klasse habe ich eine Member-Variable m_feld vom Typ CRect.
Über
GetDlgItem(IDC\_FELD)-\>GetWindowRect(&m\_feld);
ScreenToClient(&m\_feld);
(in der Methode OnInitDialog() ^^)
hole ich die Maße vom Gruppenfeld IDC_FELD in die Variable m_feld.
Sobald ich auf den OK-Button drücke, soll in dem Rechteck (Gruppenfeld) ein Raster gezeichnet werden, durchgängig von oben links bis unten rechts, aber nicht im Rest des Dialogs. Die Punkte oben links und unten rechts vom Gruppenfeld kann ich ja nun so bestimmen:
(ab jetzt ist alles in Methode OnOK() …)
int x1 = m\_feld.TopLeft().x;
int y1 = m\_feld.TopLeft().y;
int x2 = m\_feld.BottomRight().x;
int y2 = m\_feld.BottomRight().y;
Jetzt möchte ich mit MoveTo und LineTo halt das Raster in dieses Rechteck zeichnen, aber daran scheitere ich kläglich…
Also:
CPaintDC dc(this);
CPen \*oldpen = NULL;
CPen VioletPen(PS\_SOLID,2,RGB(128,0,128));
oldpen = dc.SelectObject(&VioletPen);
// noch kein Raster zeichnen, nur Linie ausgeben
dc.MoveTo(x1, y1);
dc.LineTo(x2, y2);
dc.SelectObject(oldpen);
Wie ich das sehe, müsste der jetzt ne Linie von oben links schräg nach unten rechts zeichen… Es passiert aber rein gar nichts
Ich hab auch noch die Zeilen
InvalidateRect(&m\_feld);
Invalidate();
drunterstehen, aber egal ob ich sie auskommentiere oder stehen lasse, ich sehe keine Linien…
Naja… viel Text für ein vielleicht kleines Problem (hoffe ich)…
Wär toll wenn da mal jemand drüber nachdenken könnte…
mfG PoiSoN