Frage

Ich habe einen Griff für ein Fenster und seine Richedit -Kontrolle. Würde ich die besagte Kontrolle durch einen meiner eigenen ersetzen können? Ich möchte, dass es sich wie das Original verhalten würde, dh ein Teil des Fensters und dergleichen.

Ich werde das Szenario weiter näher erläutern - ich zerlese derzeit eine Anwendung, deren Funktionen ein Texteditor ist. Meine aktuelle (eingeschränkte) Umgebung enthält verschiedene Haken an Verfahren, von denen eines dem Editor -Fenster vergeben. Ein anderer ermöglicht es mir, den Griff zum Richedit20A zu beschaffen, das die Fensterhosts steuert.

Was ich gerne tun würde, ist dies - überschreiben Sie die Kontrolle mit meinem eigenen (sein .NET -Äquivalent vermutlich) und patchen Sie die GetWindowtext -Aufrufe der App, um die neue zu verwenden. Um es zu implementieren, plane ich, die Klassenbibliothek in C#/Managed C ++ zu schreiben und in meine App zu importieren (die in nicht verwaltetem C ++ geschrieben ist).

Außerdem kann es eine willkürliche Anzahl von Instanzen des Texteditors geben.

War es hilfreich?

Lösung

Das klingt viel zu komplex. Ersetzen Sie einfach seine wndProc (GWL_WNDPROC), nichts weiterleiten und dann den HWND ungültig machen. Das wird eine Neuausziehung erzwingen (WM_PAINT) was Sie dann erfassen können. Der Besitzer würde es wahrscheinlich nicht einmal bemerken (es sei denn, er hätte es natürlich auch süchtig)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top