| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Tugui Master


Registrado: 09 Nov 2002Mensajes: 663
|
Publicado: Lun 31 May, 2004 6:32 pm Asunto: Minimizar principal pero NO secundarios |
|
|
Intento hacer una pequeña aplicación para colocar notas tipo "PostIT" en el escritorio de windows, cada una de las notas postIT será un formulario secundario recién creado al pulsar un botón del formulario principal, hasta aquí todo me a ido bien, el problema viene cuando minimizo el formulario prinicipal que también se minimizan los formularios secundarios (notas postit). ¿hay alguna forma de minimizar el formulario principal sin que lo hagan los secundarios? _________________ ¡ADELANTE CON ESTE SUPER FORO! |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Lun 31 May, 2004 6:53 pm Asunto: |
|
|
Puedes hacer que los Forms secundarios sean "hijos" del escritorio del siguiente modo:
En cada formulario que quieres que se pueda minimizar de manera independiente al principal, añade la siguiente declaración en la cabecera:
| Código: | ...TForm2...
private: // User declarations
virtual void __fastcall CreateParams(TCreateParams& params);
...
|
e implementala del siguiente modo:
| Código: | void __fastcall TForm2::CreateParams(TCreateParams& params)
{
inherited::CreateParams(params);
params.WndParent = GetDesktopWindow();
} |
|
|
| Volver arriba |
|
 |
Tugui Master


Registrado: 09 Nov 2002Mensajes: 663
|
Publicado: Lun 31 May, 2004 7:46 pm Asunto: |
|
|
100 % Efectividad _Leo , funciona de maravilla. No dejas de sorprenderme. ¿Qué tal si lo puliéramos un poco más? ( y espero no hacerme pesado ). Creo que quedaría mejor si los títulos de las ventanas hija no apareciesen en la barra de tareas de windows. De todas formas creo que de esto último se ha hablado en el Foro, ahora buscaré a ver si tengo suerte. Saludos. _________________ ¡ADELANTE CON ESTE SUPER FORO! |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Lun 31 May, 2004 8:13 pm Asunto: |
|
|
| La forma mas sencilla de que no aparezcan en la barra de tareas es poner la propiedad "BorderStyle" en "bsSizeToolWin" o bien "bsToolWin". |
|
| Volver arriba |
|
 |
Tugui Master


Registrado: 09 Nov 2002Mensajes: 663
|
Publicado: Lun 31 May, 2004 9:47 pm Asunto: |
|
|
Si _Leo, como siempre estás en lo cierto pero.. lo que ocurre es que esa propiedad la necesito a "bsNone" para ocultar la barra de título de los postIT (Ventanas hija) . _________________ ¡ADELANTE CON ESTE SUPER FORO! |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Lun 31 May, 2004 9:54 pm Asunto: |
|
|
Modifica la función anterior del siguiente modo:
| Código: | void __fastcall CreateParams(TCreateParams& params)
{
inherited::CreateParams(params);
// Añadimos la línea siguiente:
params.ExStyle |= WS_EX_TOOLWINDOW;
params.WndParent = GetDesktopWindow();
} |
|
|
| Volver arriba |
|
 |
Tugui Master


Registrado: 09 Nov 2002Mensajes: 663
|
Publicado: Lun 31 May, 2004 10:46 pm Asunto: |
|
|
Estupendo, funciona de maravilla. Gracias  _________________ ¡ADELANTE CON ESTE SUPER FORO! |
|
| Volver arriba |
|
 |
|