Я собираюсь подключить child window к внешнему. Детское окно будет немодальным диалогом. Поскольку я не являюсь исходным кодом внешнего приложения (на самом деле Microsoft FSX), я понятия не имею, как подключиться к контуру сообщения или обратного вызова LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM)
самого родительского окна.Цикл сообщения (насос) при подключении детского окна из внешнего приложения
Приложение для моего приложения запускается в своем собственном процессе, так что мне нужно написать собственный цикл сообщений, или мой обратный вызов будет вызван сигнальным насосом родителя?
Что было бы правильным путем?
- Редактировать как ответа относительно SetWindowsHookEx
функции -
философу:
- How to hook external process with SetWindowsHookEx and WH_KEYBOARD
- SetWindowsHookEx in C#
- Может быть, не работает, другой SetWindowsHookEx Example
Как вы его прикрепляете? просто SetParent? Если это так, то он использует ваш насос сообщений и обработчик, но может вызвать «странности». – Deanna
Я просто установил дескриптор родительского окна, когда создаю его. Что было бы правильно, без «странностей»? –
Управление хостингом из разных процессов и потоков пользовательского интерфейса вызывает проблемы для фокуса, активации и т. Д. Нет стандартного способа сделать это без помощи окна процесса хоста. Наилучшим способом без его помощи является DLL-инъекция, поэтому она запускается в процессе и в главном потоке пользовательского интерфейса. – Deanna