Замена элемента управления окна другим во время выполнения - PullRequest
1 голос
/ 11 марта 2010

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

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

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

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

1 Ответ

0 голосов
/ 11 марта 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...