Dialog "Öffnen"(CreateFile) und Neu Zeichnen

Krypthonas

Erfahrenes Mitglied
Hallo,
in meinen noch sehr unfertigen Programm gibt es ein OpenGL Fenster, dass diverse geometrische Figuren ausgibt. Desweiteren gibt es ein Menu um bestehende Szenen zu öffnen.

Dies geschieht mit CreateFile(http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/createfile.asp).
Leider werden, sobald das Dialog "Öffnen" geöffnet ist, keine Nachrichten mehr verarbeitet, bzw. unterbochen durch das Dialog. Jedoch wenn ich jetzt das Dialog verschiebe, bleibt im OpenGL Fenster immer noch das ungezeichnete Bild stehen.

Und genau das ist mein Problem. Gibt es eine Möglichkeit bei der WINAPI eine Nachricht zu senden, dass bei Fenster Verschiebung das Hauptfenster Neu gezeichnet werden kann?

Ich danke schon im voraus.

In diesem Sinne
Krypthonas
 
moin


Meinst du wenn der "Öffnen" Dialog verschoben wird soll das Hauotfenster neugezeichnet werden?


mfg
umbrasaxum
 
moin


Vielleicht kannst du für den Öffnen Dialog die WM_MOVE abfangen.

Und dann per SendMessage ein WM_PAINT an dein Hauptfenster.


mfg
umbrasaxum
 
Ja so habe ich das gemeint. Nur leider funktioniert dies nicht mit Windows Messages(WM) im Hauptprogramm, da das Dialog ein eigener Prozeß darstellt.

Mir würde ja etwas einfallen, wenn ich das Dialog in einer Schleife aufrufen würde(Position des Fensters abfragen und eventuell neu Zeichnen), jedoch ist dies nicht der Fall.

Wie gesagt, dein Vorschlag hatte ich auch schon in Erwägung gezogen, scheitert aber.

Hast du/ihr noch ein Vorschlag?

In diesem Sinne
Sebastian
 
Nope, wenn es das gäbe hätte ich es ja schon genutzt. Nur in der MSDN von Microsoft steht nicht wirklich viel über das Problem.

In diesem Sinne
Sebastian
 
moin


Ja, hab jetzt auch mal geguckt.
Leider hat man beim erstellen des Dialoges keinen Einfluss auf den Dialog selbst, sondern nur auf die "Dateisachen" für die man es benutzen will. (Hmm der Satz war ...)

Noch ne Frage.
Soll das Hauptfenster eigentlich richtig weiterlaufen oder soll nur der "leere Bereich" der entsteht wenn man den FileDialog verschiebt verschwinden?


mfg
umbrasaxum
 
Freillich soll es inder Zeit nichts machen, ausser falls man das Dialog verschiebt, dass das Hauptfenster Neugezeichnet wird(also doch was :)). Vielleicht klappt es unter den Einsatz mit Multithreads, aber da bin ich mir noch nicht so sicher.

In diesem Sinne
Sebastian
 
Ja, programmiert ihr denn an Windows vorbei?

Du musst nur in deinem WM_PAINT Handler auch zumindest ein glFlipBuffer oder wie das bei OpenGL heisst aufrufen, damit da bei Anforderung auch alles neu gezeichnet wird.
Wenn da nebenbei auch Timer-Updates usw. laufen sollen, musst du da allerdings entweder auf WM_TIMER oder einen anderen Thread ausweichen, da der OpenFile-Dialog seine eigene MessagePump hat (und deine zu dem Zeitpunkt nicht aufgerufen wird).
 
Oh, naja als Quereinsteiger wußte ich das nicht. ;-)
Aber danke, dass müßte funktionieren, da WM_TIMER periodisch das Programm mit Nachrichten versorgt.

In diesem Sinne [Geschlossen]
Sebastian
 
Zurück