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 

Centrar los cuadros de dialogo comunes de windows

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Centrar los cuadros de dialogo comunes de windows Responder citando

Alquien sabe como se pueden centrar los cuadros de dialogo comunes de windows tomando como base la ventana de la aplicacion que los llama?
Volver arriba
Mensaje    Asunto: Centrar los cuadros de dialogo comunes de windows Responder citando

Puedes centrarlos con MessageDlgPos y ShowMessagePos simplemente haciendo un par de calculos con el top y left del formulario y conociendo su altura y anchura (son propiedades básicas del TForm).

int MessageDlgPos(AnsiString Msg, TMsgDlgType DlgType, TmsgDlgButtons Buttons, int HelpCtx, int X, int Y);

y otra forma mas sencillita con:

void ShowMessagePos(AnsiString Texto, int X, int Y);

Roberto Porcar
Club Builder

Volver arriba
Mensaje    Asunto: Centrar los cuadros de dialogo comunes de windows Responder citando

Roberto me refiero a los cuadros de dialogo de abrir, guardar, seleccionar colores, etc.

Gracias

Volver arriba
Mensaje    Asunto: Centrar los cuadros de dialogo comunes de windows Responder citando

Hay algunos cuadros de selección con los que si puedes hacerlo (find y replace):

FindDialog1->Left=10;
FindDialog1->Top=10;
FindDialog1->Execute();

Con los demas no se si heredando o tirando mano del API de win se podra hacer, porque no he visto que tengan métodos para ponerlos en unas coordenadas concretas.

De todas formas, hasta que a alguien se le ocurra una forma mas elegante, mira a ver esto:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
OpenDialog1->Execute();
}
//-------------------------------------------
void __fastcall TForm1::OpenDialog1FolderChange(TObject *Sender)
{
if (OpenDialog1->Tag==0) {
OpenDialog1->Tag=1;
HWND Manejador;
Manejador = GetActiveWindow();
SetWindowPos(Manejador,HWND_TOP, 10,10,430,300,true);
}
}
//-------------------------------------------
void __fastcall TForm1::OpenDialog1Close(TObject *Sender)
{
OpenDialog1->Tag=0;
}


Roberto Porcar
Club Builder

Volver arriba
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.