OpenGL in MFC Dialog und Modale Fenster
-
Hi,
ich habe mir den SourceCode von http://steinsoft.net/index.php?site=Programming/Projects/OpenGL/opengldialog geladen und wollte auf desses Basis ein kleines Tool erstellen. Nach dem ich 2 Warnings beseitigt habe Funktioniert alles auch soweit.
Das Problem ist das eine MessageBox die Anwendung blockiert, sie verliert anscheinend den Fokus und lässt sich nicht mehr ansprechen und muss im Taskplaner gekillt werden.
Ein ein Datei öffnen/speicher Dialog (CFileDialog) lässt sich zwar Aufrufen, aber beim klicken auf Öffnen gibt die Anwendung nichts zurück. bzw die ganze Anwendung scheint auch irgendwo zu hängen hat aber noch den Fokus und lässt sich regulär beenden. Beim klicken auf Abbrechen läuft alles Normal.
Ich habe das CFileDialog Testweise in einen eigenen Thread gepackt, hat aber nicht geholfen. Ich vermute das es an dem Modalen liegt das mit dem OpenGL und die art und weise wie es in das Dialog verwendet wird nicht funktioniert.
Weiss vielleicht jemand eine lösung?
Kann man das Datei öffnen/speichern Dialog auch nicht-modal bekommen?
-
drück mal die Taste <alt>

Hatte das Problem auch. Das geht weg, wenn du in deinem OpenGL-Dialog in der OnDraw vorher die On-Draw-Methode der Basisklasse aufrufst.
-
du meinst OnPaint()?
Das OpenGL wird ja in einem Steuerelement gezeichnet.ich hab hier eine COpenGLControl Klasse mit OnPaint Funktion, sowie die COpenDialogDlg Klasse mit OnPaint.
-
Ja dann die OnPaint halt^^
Ich hatte das Prob auch mal. Hab mir ein Static mit OpenGL-Funktionalität gemacht und nicht die OnPaint der Elternklasse aufgerufen, weil ich ja das Zeichnen selber übernehmen will. Hatte dasselbe zur Folge, was du auch als Prob hast.
Also einfach an erster Stelle CStatic::OnPaint (oder wovon auch immer die gerade ableitest) aufrufen, dann müsste es klappen.