c++ - Establecer una ventana para ser superior
winapi window (4)
Estoy tratando de mantener mi ventana encima de todas las demás. Soy nuevo en la programación de C ++ Win32. Esta es mi inicialización de mi ventana en WinMain
:
hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
Anteriormente trabajé con diálogos, por lo que la propiedad más alta fue realmente fácil de usar. Pero aquí, en una ventana, no sé cómo configurarlo. También quiero poder activarlo. Alguien puede ayudarme?
Use CreateWindowEx
con estilo de ventana (extendida) WS_EX_TOPMOST
.
Descargo de responsabilidad: son aproximadamente 15 años desde que toqué esas cosas.
ver el parámetro SetWindowPos , hWndInsertAfter
. pasar HWND_TOPMOST
debe hacer lo que quieras.
Además, es posible que desee aprobar SWP_NOMOVE | SWP_NOSIZE
SWP_NOMOVE | SWP_NOSIZE
al parámetro uFlags
si desea mantener la posición y el tamaño sin cambios.
SetWindowPos(hwnd01, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
Nota: SWP_NOMOVE | SWP_NOSIZE
SWP_NOMOVE | SWP_NOSIZE
son para ignorar los parámetros 3ro, 4to, 5to, 6to de la función SetWindowPos
.
El segundo parámetro puede ser:
HWND_BOTTOM
HWND_NOTOPMOST
(configurar ventana para ser una ventana normal)HWND_TOP
HWND_TOPMOST
(configurar la ventana para estar siempre en la parte superior)
2 Noitidart porque no puedo comentar directamente
SWP_NOMOVE Mantiene la posición actual (ignora los parámetros X e Y). SWP_NOSIZE Conserva el tamaño actual (ignora los parámetros cx y cy). Si no establece estos indicadores, debe especificar la posición y el tamaño en lugar de pasar 0, 0, 0, 0