Я пытаюсь встроить окно из моего процесса в окно внешнего процесса с помощью функции SetParent и столкнулся с несколькими проблемами, которые я надеюсь, что кто-то может мне помочь. Во-первых, вот схема того, что я сейчас делаю, чтобы вставить мое окно в приложение:
HWND myWindow; //Handle to my application window
HWND externalWindow; //Handle to external application window
SetParent(myWindow,externalWindow);
//Remove WS_POPUP style and add WS_CHILD style
DWORD style = GetWindowLong(myWindow,GWL_STYLE);
style = style & ~(WS_POPUP);
style = style | WS_CHILD;
SetWindowLong(myWindow,GWL_STYLE,style);
Этот код работает, и мое окно появляется в другом приложении, но вводит следующие проблемы:
- Когда мое окно получает фокус ввода, основное окно приложения внешнего процесса теряет фокус (т.е. строка заголовка меняет цвет)
- Команды быстрого доступа к клавиатуре основного приложения не работают, когда мое окно имеет фокус
Кто-нибудь знает обходное решение для этого? Я хотел бы, чтобы мое окно рассматривалось как еще одно дочернее окно основного приложения.