Estoy tratando de incrustar una ventana de mi proceso en la ventana de un proceso externo usando la función SetParent y he encontrado algunos problemas que espero que alguien me pueda ayudar con. En primer lugar, aquí es un resumen de lo que estoy haciendo actualmente para incrustar mi ventana en la aplicación:Incrustar HWND en proceso externo usando 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);
Este código funciona y mi ventana aparece en la otra aplicación, sino que introduce las siguientes cuestiones:
- Cuando mi ventana ganancias foco de entrada, la ventana principal de la aplicación del proceso externo pierde el foco (es decir, la barra de título cambia de color)
- comandos de acceso directo del teclado de la aplicación principal no funcionan mientras mi ventana tiene el foco
¿Alguien sabe una solución para esto? Me gustaría que mi ventana sea tratada como una ventana secundaria de la aplicación principal.