CDialog Styles VOR Create ändern
-
Moin!
Ich habe hier eine Dialogklasse. Das Problem: Dieser Dialog wird einmal als normaler Modal-Dialog verwendet (Style WS_POPUP) und einmal eingebettet in ein anderes Fenster (Style WS_CHILD). Ich weiss, das diese Styles VOR Erstellen des Dialog festgelegt sein müssen und nicht mehr geändert werden können. Aber wie soll ich das anstellen? CDialog ruft PreCreateWindow nicht auf. Das setzen des Styles in der createstruct Struktur in OnCreate ist scheinbar zu spät - Funktioniert jedenfalls nicht. Irgendwelche Vorschläge?
-
Dann musst Du eine Kopie der Ressource anlegen und das Template manipulieren.
Dialoge können auch von Memory Images angelegt werden.
-
Ja danke, das funktioniert. Hat das eigentlich irgendeinen Grund, das PreCreateWindow für Dialoge nicht aufgerufen wird? In der MSDN steht, man solle stattdessen OnInitDialog verwenden, allerdings gibt es das Fenster in OnInitDialog bereits

-
Cpp_Junky schrieb:
Ja danke, das funktioniert. Hat das eigentlich irgendeinen Grund, das PreCreateWindow für Dialoge nicht aufgerufen wird? In der MSDN steht, man solle stattdessen OnInitDialog verwenden, allerdings gibt es das Fenster in OnInitDialog bereits

PreCreateWindow kann nicht aufgerufen werden, da alle Dialoge intern mit CreateDialogIndirect von der Windows API erzeugt wird und die weiß nichts von der MFC...