
La clase CSplitterWnd proporciona la funcionalidad de una ventana divisora, que es una ventana que contiene varios paneles. Un panel suele ser un objeto de aplicación específicas derivado de CView, pero puede ser cualquier objeto CWnd que tiene el identificador de ventana de niño apropiado.
Un objeto CSplitterWnd normalmente está incrustado en un objeto primario de CFrameWnd o CMDIChildWnd . Crear un objeto CSplitterWnd mediante los siguientes pasos:
Llame a la función miembro Create para crear una ventana separador dinámico. Una ventana divisora dinámica normalmente se utiliza para crear y desplazar un número de paneles individuales o vistas del mismo documento. El marco crea automáticamente un panel inicial para el separador; entonces el marco crea, cambia de tamaño y dispone de paneles adicionales como el usuario efectúa controles de la ventana de separador.
Cuando se llama a crear, debe especificar un ancho de columna y alto de fila mínimo que determinar cuando los paneles son demasiado pequeños para mostrarse totalmente. Después de llamar a crear, puede ajustar estos mínimos por llamar a la SetColumnInfo y SetRowInfo miembros de funciones.
También puede utilizar las funciones de miembro de SetColumnInfo y SetRowInfo para establecer un ancho de una columna "ideal" y altura "ideal" para una fila. Cuando el marco muestra una ventana divisora, muestra primero el marco principal, entonces la ventana divisora. El marco, a continuación, expone los paneles en columnas y filas de acuerdo a sus dimensiones ideales, trabajando desde la parte superior izquierda a la esquina inferior derecha del área de cliente de la ventana de separador.
Todos los paneles en la ventana de un separador dinámico deben ser de la misma clase. Aplicaciones conocidas que admiten ventanas divisoras dinámicas incluyen Microsoft Word y Microsoft Excel.
Utilice la función de miembro de CreateStatic para crear una ventana divisora estática. El usuario puede cambiar sólo el tamaño de los paneles en un separador estático de ventana, no su número u orden.
Específicamente debe crear paneles de todos las divisoras estáticas cuando se crea el separador estático. Asegúrese de crear todos los paneles antes miembro de OnCreateClient del marco principal función devuelve o el marco no mostrará la ventana correctamente.
La función de miembro CreateStatic inicializa automáticamente un separador estático con un ancho de columna y alto de fila mínimo de 0. Después de llamar a crear, ajustar estos mínimos por llamar a la SetColumnInfo y SetRowInfo miembros de funciones. También utilizar SetColumnInfo y SetRowInfo después de llamar a CreateStatic para indicar las dimensiones del panel ideal deseado.
Los paneles individuales de un separador estático a menudo pertenecen a distintas clases. Ejemplos de ventanas divisoras estáticas, ver el editor de gráficos y el administrador de archivos de Windows.
Una ventana divisora admite barras de desplazamiento especial (aparte de las barras de desplazamiento que pueden tener paneles). Estas barras de desplazamiento son hijos del objeto CSplitterWnd y se comparten con los paneles.
Crear estas barras de desplazamiento especial al crear la ventana divisora. Por ejemplo, un CSplitterWnd que tiene el estilo WS_VSCROLL , dos columnas y una fila mostrará una barra de desplazamiento vertical que es compartida por los dos paneles. Cuando el usuario mueve la barra de desplazamiento, se envían mensajes WM_VSCROLL a ambos paneles. Cuando los paneles establece la posición de la barra de desplazamiento, la barra de desplazamiento compartido es establecer.
Para obtener más información sobre ventanas divisoras, véase técnica de nota de 29. Para obtener más información sobre cómo crear ventanas divisoras dinámicas, vea Agregar ventanas divisoras a mano alzada en Mejorar vistas en Tutoriales de Visual C++y el ejemplo General de MFC VIEWEX.
# include lt;afxext.h>
Miembros de la clase |nbsp; Clase base | Diagrama de jerarquía
Muestra Ejemplo de MFC VIEWEX