Home   Artículos   Recursos   Foros   
Artíclos recientes publicados en Latindevelopers:

Visual C++: NSDoubleEdit: Un control para el manejo de números decimales en Visual C++.
Visual C++: Implementando una Calculadora en Visual C++
Visual C++: CCommandLine: Una clase para el uso de la linea de comando
Visual C++: Una clase para el manejo del Registro


Maximizar

Aqui programadores en la plataforma Win32 con Visual C++ de Microsoft...

Moderador: latindeveloper

Maximizar

Notapor atp el Mar Ene 31, 2006 6:02 pm

Hola a todos. He aquí una nueva pregunta.

Cuando se pulsa el botón maximizar, como se puede hacer para el contenido del dialogo (CTreeCtrl, CList,....) crezcan proporcionalmente en el diálogo.
atp
Usuario Muy Activo
Usuario Muy Activo
 
Mensajes: 132
Registrado: Mar Ene 03, 2006 3:52 pm

Re: Maximizar

Notapor latindeveloper el Mar Ene 31, 2006 6:44 pm

Para ese caso tienes que preparar los controles de tu dialogo para que se auto-acomoden.

Una manera facil:

1. Agregar el evento al mensaje WM_SIZE.

2. Luego crear una variable para cada elemento. (opcional)

3. Escribir el siguiente codigo, dependiendo de la ubicacion de cada uno, por ejemplo si deseas que un control CTreeCtrl relacionado a la variable m_tree ocupe siempre el medio de la ventana:

Código: Seleccionar todo
void CTuDialogo::OnSize(UINT nType, int cx, int cy)
{
   CDialog::OnSize(nType, cx, cy);

   if(IsWindow(m_tree.m_hWnd))
   {
      CRect rect;
      GetClientRect(&rect);
      rect.right = rect.Width()/2;
      // o Tambien rect.right = cx/2;      
      m_tree.MoveWindow(&rect);
   }
}


El problema es que tienes que calcular la nueva posicion para cada control basado en el nuevo tamaño.
Imagen
Avatar de Usuario
latindeveloper
Administrador
Administrador
 
Mensajes: 1061
Registrado: Lun Jun 02, 2003 8:30 pm
Ubicación: Peru


Volver a Visual C++

¿Quién está conectado?

Usuarios navegando por este Foro: Google Adsense [Bot] y 1 invitado