Registrieren einer benutzerdefinierten win32-Fenster-Klasse von c#

Habe ich eine neue Anwendung geschrieben in WPF, braucht zur Unterstützung eine alte API, die ermöglicht, dass Sie erhalten eine Nachricht, die gepostet wurde, zu einem versteckten Fenster. In der Regel einer anderen Anwendung verwendet FindWindow zu identifizieren, die das ausgeblendete Fenster mit den Namen Ihrer benutzerdefinierten Fenster-Klasse.

1) ich nehme an, implementieren Sie eine benutzerdefinierte Fensterklasse, die ich brauche, um die Nutzung der alten Schule-win32-aufrufen?

Meine alten c++ - Anwendung verwendet RegisterClass und CreateWindow, um die einfachste mögliche unsichtbare Fenster.

Ich glaube, ich sollte in der Lage sein, das gleiche zu tun, alle innerhalb von c#. Ich will nicht, dass mein Projekt zu kompilieren alle nicht verwalteten code.

Habe ich versucht Erben von System.Windows.Interop.HwndHost und mit System.- Laufzeit.InteropServices.DllImport ziehen in den oben genannten API-Methoden.

Tun, dies kann ich erfolgreich host einen standard-win32-Fenster z.B. "listbox" inside WPF.
Allerdings werden mir beim Aufruf von CreateWindowEx für meine benutzerdefinierte Fenster wird es immer null zurück.

Mein Aufruf von RegisterClass erfolgreich, aber ich bin mir nicht sicher, was ich einstellen
WNDCLASS.lpfnWndProc Mitglied.

2) weiß jemand, wie dies zu tun erfolgreich?

InformationsquelleAutor morechilli | 2008-09-24

Schreibe einen Kommentar