Замена управления окном другим во время выполнения

StackOverflow https://stackoverflow.com/questions/2426235

Вопрос

У меня есть ручка с окном и его контроль Richedit. Смогу ли я заменить указанный контроль одним из моих собственных? Я бы хотел, чтобы это было вести себя как оригинальный, т.е. был бы частью окна и таким же.

Я подробно расскажу об этом сценарии - в настоящее время я разбираю приложение, одно из которых является текстовым редактором. Моя текущая (ограниченная) среда имеет в ней различные крючки для процедур, один из которых дает ручку в окно редактора. Другой позволяет мне приобретать ручку на RichedIt20a управляет хостами окна.

Я хотел бы сделать это - перезаписать управление своим собственным (предположительно .NET, предположительно) и исправить приложения GetWindowText, чтобы использовать новое. Чтобы реализовать его, я планирую написать библиотеку классов в C#/Managed C ++ и импортировать ее в мое приложение (которое написано в неуправляемом C ++).

Кроме того, может быть произвольное количество экземпляров текстового редактора.

Это было полезно?

Решение

Это звучит слишком сложно. Просто замените его wndproc (GWL_WNDPROC), ничего не пересылаю, а затем аннулировать HWND. Это заставит перерисовать (WM_PAINT), который вы можете затем запечатлеть. Владелец, вероятно, даже не заметил бы (если бы он тоже не зацепил), конечно)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top