OnPaint oder wie?
-
Hallo
Ich habe mal wieder eine Frage. Ich versuche gerade weiter mit Bitmaps zu arbeiten. (Wie einige sicher durch meine ganzen Fragen zu diesem Thema hier im Forum wissen) Mittlerweile benutze ich Picturecontrol und stelle damit fünf Bitmaps dar. Immer wenn das Fenster jedoch geschlossen wird, verschwinden diese Bitmaps, die ich in der InitDialog initialisiert habe. Also habe ich dies in der OnPaint gemacht und alles funktionierte wunderbar. Jetzt versuche ich jedoch die Bitmaps zu manipulieren, wenn der Benutzer eine Button klickt. Im das Bitmap soll ein rotes Quadrat gezeichnet werden. Auch das funktioniert sehr gut. Dies habe in der Funktion ButtonClicked gemacht. Wenn jetzt allerdings das Fenster verkleinert, oder überdeckt wird, zeigt er natürlich wieder das erste Bitmap an, weil in OnPaint ja nur das beschrieben ist. Ich will aber, dass er mir das neue, umrandete anzeigt.
Ich hoffe, dass ihr zumindest halbwegs versteht, was ich meine. Ich bin leider nicht sehr sicher im Umgang mit Programmierspezifischem Vokabular und muss deshalb alles mühsam umschreiben.
chrische
-
Hallo!
Setz doch in der Funktion nur einen bool, dass das Rechteck gezeichnet werden muss und zeichne es dann auch in OnPaint.
-
hallo
versteh ich dich richtig: ich soll in den funktionen, die eigentlich die bitmaps ändern sollten nur eine bool-variable mnipulieren und diese dann in der OnPaint abfragen:
if(bool) m_ctlPicture1.SetBitmap(Bitmap1); else m_ctlPicture1.SetBitmap(Bitmap2);
-
Hallo! Hatte just ein ähnliches Problem...
So wie estartu_de vorgeschlagen hat klappt es natürlich.
Ich habs mit nem integer gemacht und prüfe in OnPaint
ob der Wert 0 oder 1 ist.
Initialisiert wird mit 0 bei Programmstart und in OnPaint
sieht es dann so aus:if(c==0){ m_list3.InsertColumn ( 0, "Wert1",LVCFMT_LEFT,374 ); c=1; //nicht wieder ausführen bei OnPaint }
-
Hallo
ob 0 und 1 oder false und true ist ja eigentlich egal. ich werde es mal versuchen. habe leider zur zeit keinen pc mit compiler. wenn es wider erarten probleme geben sollte, mlede ich mich einfach.
chrische