2009-05-12 45 views
8

Estoy creando un programa que muestra una ventana emergente en ciertos momentos (al igual que algunos clientes de chat, por ejemplo) en la que el usuario puede hacer clic. Sin embargo, no quiero quitar el foco de la aplicación actual.Win32, C++: Crear una ventana emergente sin robar el foco

La forma en que lo estoy haciendo ahora es usando un HWND con WS_POPUPWINDOW y minimizando y luego restaurando la ventana. Sin embargo, esto roba el enfoque de la aplicación actual. Poner en primer plano u ocultar y mostrar una ventana no lo hizo aparecer en el primer plano. Me gustaría poder seguir usando un HWND para poder usar otros elementos en esta ventana, pero no tengo idea de cómo ponerlo en primer plano sin robar el foco.

Uso win32 y C++.

Respuesta

21

Para mostrar sin activar:

ShowWindow(hwnd, SW_SHOWNOACTIVATE); 

Para levantar sin activar:

SetWindowPos(hwnd, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE); 
Cuestiones relacionadas