Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Minimizar principal pero NO secundarios

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Minimizar principal pero NO secundarios Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

100 % Efectividad _Leo Wink , funciona de maravilla. No dejas de sorprenderme. ¿Qué tal si lo puliéramos un poco más? ( y espero no hacerme pesado Embarassed ). 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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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) Rolling Eyes .
_________________
¡ADELANTE CON ESTE SUPER FORO!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Estupendo, funciona de maravilla. Gracias Very Happy
_________________
¡ADELANTE CON ESTE SUPER FORO!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.