/ / Crianza de una aplicación Qt a otra aplicación - windows, qt, winapi

Crianza de una aplicación Qt para otra aplicación: windows, qt, winapi

Este es un seguimiento de una pregunta pendiente, la solución a la que parece ser que tengopara hacer que mi aplicación Qt sea hija de otra aplicación, específicamente la ventana activa que tiene el foco de entrada. Necesito hacer esto para que mi aplicación Qt tenga un enfoque de entrada automáticamente, sin que el usuario tenga que hacer clic en él primero. (Esto es necesario porque la aplicación Qt se inicia mediante un proceso en segundo plano).

Estoy consciente de QWinWidget - "un widget Qt que puede ser hijo de un widget Win32 nativo". Desafortunadamente, mi aplicación se basa en QMainWindow y no hay una forma obvia de hacerla derivar de QWinWidget.

Respuestas

0 para la respuesta № 1

La solución a la que parece ser que tengo que hacer que mi aplicación Qt sea hija de otra aplicación, específicamente la ventana activa que tiene el foco de entrada...

Las soluciones similares de Win32 en las que la otra aplicación de proceso captura una ventana dentro de su propio lienzo generalmente están controladas por SetParent Llamada API. Aquí está uno. Me funciona con el otro proceso.renderizado dentro del widget Qt, pero necesitas hacerlo al revés. ¿Cómo se obtiene ese identificador de ventana Qt? Bueno, para mí, QWidget :: winId () está funcionando incluso en Qt 5.3, pero últimamente me topé con discusión Y un poco confuso si siempre funciona o no. De todos modos, necesitas obtener una ventana activa en su aplicación Qt también antes de obtener su winId () que se supone que es el manejador de la ventana.

PD Olumide, por favor descarta mi comentario inicial. Pensé, al revés, qué aplicación da prioridad a qué ventana y resulta que Qt no toma Qt.