Forms estilo 'StayDown'
|
Seguramente conocerás la forma de hacer una form 'StayOnTop', es decir, una form que siempre permanezca encima del resto. Este truco consiste en todo lo contrario: hacer que la form siempre permanezca debajo del resto, sobre el escritorio. Una forma de conseguir esto es ejecutando el siguiente código:
Ahora bien, esto está bien para colocarla al fondo, pero... ¿si queremos que siempre esté debajo?, ¿que eventos hemos de usar para conseguirlo? Yo los he buscado, pero no conseguí hacer que funcionase limpiamente y sin parpadeos, así que al final desistí de usar dicho código. Resolví el tema mediante el mensaje WM_WindowPosChanging que Windows envia a la form antes de producir un cambio de posicion, tamaño o orden visual (Z Order) en la form. Dicho mensaje, nos permite tomar cartas en el asunto, y permitir o no que la form se mueva o cambie de tamaño. Vamos con el ejemplo:
y esto es todo. El funcionamiento es muy sencillo: Uno de los parámetros del mensaje es WindowPos, que no es más que una estructura en la que Windows nos informa de los nuevos parámetros de la ventana (tamaño y posicion). Si lo dejamos correr, el cambio se producirá. Sin embargo, si cambiamos algúno de los parámetros, la ventana tomará el aspecto y posición que le indiquemos en el cambio. En este truco, tan sólo utilizaremos el parámetro hwndInsertAfter, en el cual pondremos la constante HWND_BOTTOM para que situe la ventana al fondo. |