ActiveX-Control in Dialog
-
Der hat mir ja auch schon geholfen, aber leider funktioniert das nicht mit in der Resource eingebauten ActiveX-Controls ! Wenn ich mir manuell eine windowbasierte Anwendung mit CreateWindow, RegisterClass usw. baue funktioniert das reibungslos, nur eben nicht mit in der Resource erstellten Dialogen, und das ist mir ein echtes Rätsel. Ich hatte erst gedacht, es läge an den boolischen Rückgabewerten der DialogProc, nach dem Subclassing (neue WindowProc mit LRESULT-Rückgabe) änderte sich aber auch nichts. Mist !
-
Das ist wie mit dem RichEdit!
Du musst die passende Dll in deinen Prozess laden mit LoadLibrary.
Sonst wird der Dialog nicht angezeigt.Wie die Datei bei aar heist weiss ich net..
cu para
-
quatsch
-
Original erstellt von <sch>:
quatsch? Gehts genauer?
-
Das mit dem DLL-Laden kann nicht sein, denn eine reine CreateWindow-Anwendung, benötigt ja auch keine zusätzliche dll oder lib.
-
Der Dialog wird nicht angezeigt, wenn ein Fenster nicht erstellt werden kann. Das passiert z.B. dann, wenn eine Fensterklasse nicht registriert ist. Wenn Du das Beispiel aus den FAQs nimmst, übernimmt die Funktion AtlAxWinInit() das Registrieren. Diese Funktion mußt Du bereits vor DialogBox() aufgerufen haben, in WM_INITDIALOG ist es bereits zu spät. In den Dialog fügst Du ein 'Benutzerdefiniertes Steuerelement' ein. Als Klassennamen verwendest Du "AtlAxWin" und als Titel die CLSID (oder ProgID).
Wenn Du das aber tatsächlich nach Spacelords Vorschlag gemacht hast, kann ich Dir auch nichts genaueres sagen. In reinen Win32-Anwendungen funktioniert dieser Ansatz nämlich nicht.
-
Ich denke mal du liegst da einwenig falsch mein Fusel...
Pass mal auf:
[code]
1. Erstell ein Projekt
2. Schreib dein int WINAPI ... rein
3. Rufe darin ein Dialog per DialogBox(...) auf (aus Resource)
4. Starte das ganze => BINGO: Es geht, der Dialog wird angezeigt.
5. Erstelle nun eine RichEdit im Dialog
6. Starte => BINGO: Es geht nicht!
7. Mach ein LoadLibrary("riched32.dll") rein
8 Starte => BINGO: Es geht.[/code]Deshalb dachte ich es könnte gehen, denn schließlich ist es naheliegend!!
Wie wäre es denn wenn man es einfach mal ausprobiert....cu para
-
Wie wäre es denn wenn man es einfach mal ausprobiert....
Er braucht für das PDF-Control nicht die riched32.dll zu laden. Den Versuch kann er sich sparen.
-
Original erstellt von -King-:
[quote]Wie wäre es denn wenn man es einfach mal ausprobiert....**
Er braucht für das PDF-Control nicht die riched32.dll zu laden. Den Versuch kann er sich sparen.**[/QUOTE]Du kannst auch drauf rummreiten. Hättest du oben mal nachgesehen, dann hättest du festgestellt, dass ich das in Relation gesetzt hab. Natürlich müsste er in dem Fall eine andere Dll laden. Aber soweit kann mal wohl noch denken
Ich habe nur geschrieben, wie es mit einem RichEdit war. Ein reiner Denkanstoß.
Das du in Sachen ActiveX der -KING- bist ist mir schon klar, ich wollt nur helfen.
also vergesst es halt.
cu :p
-
Original erstellt von -King-:
**Als Klassennamen verwendest Du "AtlAxWin" und als Titel die CLSID (oder ProgID).
**Dies war mein Fehler, ich hatte nicht die AtlAxWin-Fensterklasse definiert ! Danke King ! und auch danke paranoiac.org !
[ Dieser Beitrag wurde am 03.04.2003 um 15:17 Uhr von BiGFusel editiert. ]