autoredraw
-
hallo
wie geht autoredraw in MFC?
irgendjemand ne ahnung?
-
Was verstehst du bitte unter autoredraw?
Grüssli
-
Invalidate?
Von welcher Sprache kommst du?
-
das wenn ich z.B. über dem diagram einen dialog öffne und den dialog schliesse, das diagram nachher nicht weg ist
-
invalidate? und wie funktioniert das wenn ich fragen darf?
invalidate() bringt irgendwie nichts...
-
Wenn du an der richtigen Stelle zeichnen würdest, ginge das ganz von allein.
-
also
der code sieht ca. so aus...CDC *pDC = m_ctrlDiagram.GetDC(); ... diagram wird gezeichnet... juhee
niemand ders mir sagen will?
-
muchach0 schrieb:
also
der code sieht ca. so aus...CDC *pDC = m_ctrlDiagram.GetDC(); ... diagram wird gezeichnet... juhee
niemand ders mir sagen will?
Wir wissen ja nichts von deinem Code. Ist es ein SDI? MDI? Dialog? Und was für eine View brauchst du? Was ist m_ctrlDiagram? In welcher Funktion sind wir, wo du diesen Codeausschnitt zeigst? Usw. usf.
Wie es MFK gesagt hat, wenn du an der richtigen Stelle das Zeugs malst, passiert es automatisch!
Grüssli
-
also
meine zechnungsfunktion sieht z.B. so aus... in einer SDI ganz billig
void CDrawingTestDlg::OnTestDraw() { CDC *pDC = m_ctrlPic.GetDC(); CRect rFrame; CBrush myBrush(RGB(255, 128, 0)); m_ctrlPic.GetClientRect(rFrame); pDC->SelectObject(&myBrush); pDC->Rectangle(rFrame); ReleaseDC(pDC); }
m_ctrlPic ist ein Frame der rest sollte klar sein. Das beispiel hier zeichnet nur ein oranges rechteck in der grösse des Frames.
das funktioniert auch alles so weit so gut, NUR wenn ich den dialog verschiebe (ausm bild) oder etwas darüber schiebe dann verschwindet mein hübsches orange wieder... wie weiter?
-
Du musst deinen Zeichencode in die OnPaint() deines TestDialoges packen. Der Aufruf derselben läuft dann über Invalidate() bzw. automatisch.