Malprogramm und Striche speichern
-
Nabend,
wir der Titel schon sagt, schreibe ich gerade an einem Malprogramm rum.
Jetzt stehe ich gerade vor dem Problem, das wenn ich ein Strich gemalt habe,
und das Fenster neu gezeichnet wird ( WM_PAINT ) dann fehlen ja die Striche wieder.Ich bin nun beigegangen und hab folgenden Code geschrieben:
void CPainterView::OnLButtonDown(UINT nFlags, CPoint point) { CPainterDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); pDoc->m_VorX = point.x; pDoc->m_VorY = point.y; CView::OnLButtonDown(nFlags, point); } void CPainterView::OnMouseMove(UINT nFlags, CPoint point) { if((nFlags& MK_LBUTTON)== MK_LBUTTON) { CPainterDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); CPen *oldpen; CClientDC dc(this); CPen NeuPen(PS_SOLID,1,farbe); oldpen= dc.SelectObject(&NeuPen); dc.MoveTo(pDoc->m_VorX,pDoc->m_VorY); dc.LineTo(point.x,point.y); pDoc->m_VorX=point.x; pDoc->m_VorY=point.y; dc.SelectObject(oldpen); } CView::OnMouseMove(nFlags, point); }was auch gut funktioniert. Nur wie kann ich das nun anstellen, das die daten gespeichert werden, so das ich die dann bei einem WM_PAINT rekonstruieren kann?
Irgendwie gehen da keine Autoren in ihren Büchern drauf ein.Wäre froh über jede Anregende Idee.
Grüße Stipo
-
Du baust Dir eine Klassenstruktur auf, und dann stopfst Du in eine Liste immer die Klasse mit den passenden Daten rein (als z.B. vonX/y, nachX/Y, farbe). Und bei WM_PAINT gehst Du einfach diese Liste durch und zeichenst was in der Liste steht...
-
http://www.se.fh-heilbronn.de/usefulstuff/VCPLUS6/kap10.htm
http://www.henkessoft.de/C++/MFC/mfc_einsteigerbuch_kapitel1_teil2.htm#MoveLine (Zeichnen)
http://www.henkessoft.de/C++/MFC/mfc_einsteigerbuch_kapitel7.htm (Serialisierung)
-
hmm, wäre es net einfacher wenn er das uff nen Bitmap speichert????? Oder must du die koordinaten der striche haben, dann kommst um ne liste mit den punkten net rum, aba wenns nur ums bild geht schreibs uff nen Bitmap isssss viel viel einfacher.
-
Nabend zusammen,
mit diesem Tutorial konnte ich genau das realisieren, was ich gescht hatte:
http://www.se.fh-heilbronn.de/usefulstuff/VCPLUS6/kap10.htm
Danke noch mal.
So macht Programmieren lernen Spaß
Grüße Stipo
-
Freut mich, dass mein Link Dir geholfen hat. Schau auch mal nach "Scribble", das ist ein "stepwise" Malprogramm für VC++.