Kann man Dialoge dynamisch laden?
-
Hallo,
ist es möglich, Dialoge dynamisch zu laden? Also ich hab ein Programm und ich will in das laufende Programm (oder auch nach Neustart) einen neuen Dialog aufnehmen, jedoch ohne das Programm neu kompilieren zu müssen.
Vielen Dank und Grüße,
Manfred
-
Soweit ich weiß, kann man Resourcen auch in DLLs ablegen und dynamisch aufrufen. Weiß aber noch nicht, wie das genau geht.

-
Ok, danke! Hast du da irgendeine Quelle dazu? Wäre super!!
-
In der nächsten Ausgabe des Magazins gibt's vom mir voraussichtlich einen Artikel zu DLLs - inklusive Ressourcen-DLLs.
Greetz, Swordfish
-
Such mal in der NSDN nach CreateDialogBoxIndirect(...). Da müsste irgendwo in der MSDN auch noch Beispielcode dafür schlummern. Ich glaube das ist das was du suchst.
//edit: Ups, zu schnell auf Absenden gedrückt. Die Funktion heißt CreateDialogIndirect( ...) (MSDN: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/dialogboxes/dialogboxreference/dialogboxfunctions/createdialogindirect.asp )
Mit dieser Funktion kannst du Dialogboxen dynamisch zur Laufzeit erstellen.
-
Okay, Danke. Ich werds mal damit versuchen, hoffentlich klappts auch

-
Also hab mir das jetzt mal angesehen und das hört sich ganz gut an.
Nur muss man bei der Funktion einen Zeiger auf eine Methode angeben, die die Nachrichtenbehandlung übernimmt. Allerdings muss ich diese Methode doch dann bereits zur Entwurfszeit festlegen, oder? Ich möchte nämlich eigentlich auch die Nachrichtenbehandlung für die Dialogbox dynamisch einbinden können. Sprich, ich hab ein Programm und in dem gibts einen Knopf: "Modul laden" und dann kann ich ein Modul (Dialogbox) auswählen und das dann einbinden. Und ich möchte, dass man Module auch nach der Fertigstellung des Hauptprogramms noch verändern oder neu entwickeln kann.
Danke
-
soccertrash schrieb:
Also hab mir das jetzt mal angesehen und das hört sich ganz gut an.
Nur muss man bei der Funktion einen Zeiger auf eine Methode angeben, die die Nachrichtenbehandlung übernimmt. Allerdings muss ich diese Methode doch dann bereits zur Entwurfszeit festlegen, oder? Ich möchte nämlich eigentlich auch die Nachrichtenbehandlung für die Dialogbox dynamisch einbinden können. Sprich, ich hab ein Programm und in dem gibts einen Knopf: "Modul laden" und dann kann ich ein Modul (Dialogbox) auswählen und das dann einbinden. Und ich möchte, dass man Module auch nach der Fertigstellung des Hauptprogramms noch verändern oder neu entwickeln kann.
DankeWenn du dafür eine DLL hast kannst du doch das ganze in der DLL ausführen lassen. Exportier dir einfach eine Funktion "int ExecuteDialog(HWND parent)" oder so, dann kannst du die DLL laden und dir mit GetProcAddress die Funktion holen und die dann alles machen lassen.

BR
Vinzenz
-
Swordfish schrieb:
In der nächsten Ausgabe des Magazins gibt's vom mir voraussichtlich einen Artikel zu DLLs - inklusive Ressourcen-DLLs.
Greetz, Swordfish
Hast du den Artikel zufällig schon fertig? Würde mich ziemlich interessieren.
Grüße, Manfred
-
@soccertrash: UpdateResource ?!
-
CodeFinder schrieb:
@soccertrash: UpdateResource ?!
Das manipuliert ja nur eine Ressource! Das Problem ist: Welcher Code steckt nun dahinter...