PDA

Ver la Versión Completa : Personalizar bordes


piccolo2101
27-10-2005, 13:24:05
Hola,

me gustaría saber como podría personalizar el fromato de las ventanas. En concreto me gustaría saber como puedo poner una imagen en la región de caption y cambiar los botones de minimizar,maximizar... por botones o imágenes mías. Por ahora lo intento con WMNCHitTest pero al poner msg.result := HTClose o HTMAXBUTTON... se ve como si presionara el boton pero no reacciona.

Un saludo y gracias.

Neftali [Germán.Estévez]
27-10-2005, 13:43:03
Seguramente tendrás que capturar más de uno;
Se me ocurren por ejemplo, WM_SIZE para detectar cambios en el tamaño y redimensionar la imagen, WM_NCPAINT para "pintar" el nuevo caption y los botones, WM_NCLBUTTONDOWN y WM_NCLBUTTONUP y WM_NCLBUTTONDBLCLK para detectar los diferentes clicks de ratón,... para detectar la pulsación en tus botones de título... y seguro, seguro que me dejo algunos.

Échale un vistazo a éstos componentes:
http://www.torry.net/quicksearchd.php?String=form+caption&Title=Yes

piccolo2101
27-10-2005, 14:38:55
Hola,

muchas gracias por tu respuesta. He estado investigando sobre lo que me dijiste y he encontrado muchísima información pero lo que yo quiero hacer es algo mas sencillo y parece que no funciona. Por ahora quiero que si hago click en cualquier parte de mi aplicación esta se cierre como si le dieras al boton X.

procedure TForm1.WMNCHitTest(var Msg:TMessage);
begin
// msg.result := HTCAPTION;
// msg.result := HTMAXBUTTON;
msg.result := HTCLOSE;
// msg.result := HTMINBUTTON;
end;

Esto es lo que he puesto en mi formulario para hacer tambien pruebas sobre maximizar y minimizar. La idea es que cuando eso funcione asociar este evento segun la región de click a una acción donde cada región será una imegen en la zona client del formulario.

Nuevamente gracias.

roman
27-10-2005, 17:05:50
WM_MAXHIT, WM_CLOSEHIT,... para detectar la pulsación en tus botones de título


¿Y éstos? ¿Existen?



Por ahora quiero que si hago click en cualquier parte de mi aplicación esta se cierre como si le dieras al boton X


No estoy muy seguro de que WM_NCHITTEST sea el mensaje adecuado. Este mensaje no se involucra con clicks del ratón, únicamente con la parte de la ventana en donde está el ratón.

Quizá podrías más bien usar el método Close en los mensajes WM_LBUTTONDOWN y WM_NCLBUTTONDOWN.

// Saludos

Neftali [Germán.Estévez]
27-10-2005, 18:07:24
¿Y éstos? ¿Existen?
Claramente no, se me fue la mano con unas pruebas que estaba haciendo.
Voy a eliminarlos del mensaje anterior para que nadie se "pase un rato buscándolos".