Hallo zusammen!
Ich habe eine SDI-Anwendung erstellt, deren Basisfenster-Klasse von der "CFormView"-Klasse abgeleitet wurde. Das Fenster verfügt über eine vert. Scroll-Leiste.
Nun möchte ich in diesem Fenster etwas zeichnen:
Vereinfacht sieht das so aus:
CMyView::OnPaint
{
CClienetDC dc(this);
dc.rectangle(1,1,100,100);
}
Diese Prozedur zeichnet zwar lediglich ein kleines Quadrat in den Anwendungsbereich meiner FormView, reicht aber für meine Problembeschreibung aus.
Verdecke ich mein Fenster durch ein anderes und mache es anschließend wieder sichtbar, so wird mein Fenster incl. meiner Grafik neu gezeichnet (dank OnPaint() ) - alles prima!
Scrolle ich aber meinen Anwendungsbereich soweit nach oben, dass meine oben Grafik aus dem sichtbaren Bereich meines Fensters verschwindet und scrolle ihn anschlie0end wieder nach unten, so taucht meine Grafik nur zerstückelt wieder auf. Sie wurde also nicht komplett neu gezeichnet.
Ich habe es überprüft, Windows liefert in diesem Fall weder eine WM_OnPaint, noch eine WM_OnDraw-Nachricht... Dabei wären dasd doch die richtigen Einstiegspunkte, um meine Grafk erneut zu zeichnen, oder?
Freundliche Grüße
ral
Ich habe eine SDI-Anwendung erstellt, deren Basisfenster-Klasse von der "CFormView"-Klasse abgeleitet wurde. Das Fenster verfügt über eine vert. Scroll-Leiste.
Nun möchte ich in diesem Fenster etwas zeichnen:
Vereinfacht sieht das so aus:
CMyView::OnPaint
{
CClienetDC dc(this);
dc.rectangle(1,1,100,100);
}
Diese Prozedur zeichnet zwar lediglich ein kleines Quadrat in den Anwendungsbereich meiner FormView, reicht aber für meine Problembeschreibung aus.
Verdecke ich mein Fenster durch ein anderes und mache es anschließend wieder sichtbar, so wird mein Fenster incl. meiner Grafik neu gezeichnet (dank OnPaint() ) - alles prima!
Scrolle ich aber meinen Anwendungsbereich soweit nach oben, dass meine oben Grafik aus dem sichtbaren Bereich meines Fensters verschwindet und scrolle ihn anschlie0end wieder nach unten, so taucht meine Grafik nur zerstückelt wieder auf. Sie wurde also nicht komplett neu gezeichnet.
Ich habe es überprüft, Windows liefert in diesem Fall weder eine WM_OnPaint, noch eine WM_OnDraw-Nachricht... Dabei wären dasd doch die richtigen Einstiegspunkte, um meine Grafk erneut zu zeichnen, oder?
Freundliche Grüße
ral