E
Nun hab ich doch noch eine Lösung gefunden, bei der diese Aussetzer in der
Linksbewegung nicht mehr vorkommen.
Zum Zeichnen meiner Linie hab ich allerdings GDI+, mit der Linie als GraficsPath verwendet.
Alles Andere hab ich belassen, wie es war, also auch das Löschen der alten Linie über ein "Rect" und mit "Invalidate()".
Auch zeichne ich die Linie weiterhin innerhalb der "OnMouseMove()" und
Meine Anzeigelogik ist dadurch um ein Vielfaches einfacher. (Ja, nicht ganz Standard konform)
Grundlage war der Beitrag in http://www.codeproject.com/Articles/3962/Using-GDI-with-MFC-or-native-C-C,
für die includes und die Initialisierung von GDI+.
Und der vorherige Hnweis auf GDI::Path
Und das ist dann meine Linie:
HDC hDc = cDc.GetSafeHdc();
Graphics graphics(hDc);
Pen redPen(Color(255,255,100,50), 1);
GraphicsPath linePath;
linePath.AddLine(ptMousePoint.x,sSkala.top,ptMousePoint.x,sSkala.bottom);
graphics.DrawPath(&redPen, &linePath);
Eine Bemerkung habe ich ich doch noch:
Entgegen dem Vorschlag in Codeproject habe ich die GDI+ Initialisierung in dem View machen müssen,
in dem ich die Linie zeichne.
Als ich es in "InitInstance()" des Hauptprogramms gemacht hatte, lief im Debugger alles super.
Leider wurde aber im Release die Linie nicht gezeichnet.
Wie soll das jemand verstehen???
Grüsse
Helmut