CPane (clase)
La clase CPane
es una mejora de la clase CControlBar. Si está actualizando un proyecto MFC existente, reemplace todas las apariciones de CControlBar
por CPane
.
Sintaxis
class CPane : public CBasePane
Miembros
Constructores públicos
Nombre | Descripción |
---|---|
CPane::~CPane |
Destructor. |
Métodos públicos
Nombre | Descripción |
---|---|
CPane::AdjustSizeImmediate | Vuelve a calcular inmediatamente el diseño de un panel. |
CPane::AllocElements | Asigna almacenamiento para uso interno. |
CPane::AllowShowOnPaneMenu | Especifica si el panel aparece en la lista generada por el tiempo de ejecución de paneles para la aplicación. |
CPane::CalcAvailableSize | Calcula la diferencia de tamaño entre un rectángulo especificado y el rectángulo de ventana actual. |
CPane::CalcInsideRect | Calcula el rectángulo interior de un panel, teniendo en cuenta los bordes y las garras. |
CPane::CalcRecentDockedRect | Calcula el rectángulo acoplado recientemente. |
CPane::CalcSize | Calcula el tamaño del panel. |
CPane::CanBeDocked | Determina si el panel se puede acoplar en el panel base especificado. |
CPane::CanBeTabbedDocument | Determina si el panel se puede convertir en un documento con pestañas. |
CPane::ConvertToTabbedDocument | Convierte el panel acoplable en un documento con pestañas. |
CPane::CopyState | Copia el estado de un panel. (Reemplaza a CBasePane::CopyState). |
CPane::Create | Crea una barra de control y la adjunta al objeto CPane . |
CPane::CreateDefaultMiniframe | Crea una ventana de minimarco para un panel flotante. |
CPane::CreateEx | Crea una barra de control y la adjunta al objeto CPane . |
CPane::CreateObject |
Usado por el marco de trabajo para crear una instancia dinámica de este tipo de clase. |
CPane::DockByMouse | Acopla un panel mediante el método de acoplamiento del mouse. |
CPane::DockPane | Acopla el panel flotante a un panel base. |
CPane::DockPaneStandard | Acopla un panel mediante el acoplamiento de contorno (estándar). |
CPane::DockToFrameWindow | Acopla un panel acoplable a un marco. (Invalida CBasePane::DockToFrameWindow ). |
CPane::DoesAllowSiblingBars | Indica si puede acoplar otro panel en la misma fila donde está acoplado el panel actual. |
CPane::FloatPane | Hace que el panel flote. |
CPane::GetAvailableExpandSize | Devuelve la cantidad, en píxeles, que el panel puede expandir. |
CPane::GetAvailableStretchSize | Devuelve la cantidad, en píxeles, que el panel puede reducir. |
CPane::GetBorders | Devuelve el ancho de los bordes del panel. |
CPane::GetClientHotSpot | Devuelve la zona activa del panel. |
CPane::GetDockSiteRow | Devuelve la fila de acoplamiento en la que se acopla el panel. |
CPane::GetExclusiveRowMode | Determina si el panel está en modo de fila exclusivo. |
CPane::GetHotSpot | Devuelve la zona activa que se almacena en un objeto subyacente CMFCDragFrameImpl . |
CPane::GetMinSize | Recupera el tamaño mínimo permitido para el panel. |
CPane::GetPaneName | Recupera el título del panel. |
CPane::GetResizeStep |
Utilizado de forma interna. |
CPane::GetThisClass |
Lo usa el marco para obtener un puntero al objeto CRuntimeClass asociado a este tipo de clase. |
CPane::GetVirtualRect | Recupera el rectángulo virtual del panel. |
CPane::IsChangeState | A medida que se mueve el panel, este método analiza la posición del panel en relación con otros paneles, filas de acoplamiento y ventanas de minimarco y devuelve el valor de AFX_CS_STATUS adecuado. |
CPane::IsDragMode | Especifica si el panel se está arrastrando. |
CPane::IsInFloatingMultiPaneFrameWnd | Especifica si el panel está en una ventana de marco de varios panel. (Invalida CBasePane::IsInFloatingMultiPaneFrameWnd ). |
CPane::IsLeftOf | Determina si el panel está a la izquierda (o superior) del rectángulo especificado. |
CPane::IsResizable | Determina si se puede cambiar el tamaño del panel. (Invalida CBasePane::IsResizable). |
CPane::IsTabbed | Determina si el panel se insertó en el control de pestaña de una ventana con pestañas. (Reemplaza a CBasePane::IsTabbed). |
CPane::LoadState | Carga el estado del panel desde el registro. (Reemplaza a CBasePane::LoadState). |
CPane::MoveByAlignment | Mueve el panel y el rectángulo virtual por la cantidad especificada. |
CPane::MovePane | Mueve el panel al rectángulo especificado. |
CPane::OnAfterChangeParent | Lo llama el marco cuando el elemento primario de un panel ha cambiado. |
CPane::OnBeforeChangeParent | Lo llama el marco cuando el elemento primario del panel está a punto de cambiar. |
CPane::OnPressCloseButton | Lo llama el marco cuando el usuario elige el botón Cerrar en el título del panel. |
CPane::OnProcessDblClk |
Utilizado de forma interna. |
CPane::OnShowControlBarMenu | Lo llama el marco de trabajo cuando está a punto de mostrarse un menú de panel especial. |
CPane::OnShowControlBarMenu | Lo llama el marco de trabajo cuando está a punto de mostrarse un menú de panel especial. |
CPane::PrepareToDock |
Utilizado de forma interna. |
CPane::RecalcLayout | Recalcula la información de diseño del panel. (Invalida CBasePane::RecalcLayout.) |
CPane::SaveState | Guarda el estado del panel en el registro. (Invalida CBasePane::SaveState). |
CPane::SetActiveInGroup | Marca un panel como activo. |
CPane::SetBorders | Establece los valores de borde del panel. |
CPane::SetClientHotSpot | Establece la zona activa del panel. |
CPane::SetDockState | Restaura la información de estado de acoplamiento del panel. |
CPane::SetExclusiveRowMode | Habilita o deshabilita el modo de fila exclusivo. |
CPane::SetMiniFrameRTC | Establece la información de la clase en tiempo de ejecución para la ventana predeterminada de minimarco. |
CPane::SetMinSize | Establece el tamaño mínimo permitido para el panel. |
CPane::SetVirtualRect | Establece el rectángulo virtual del panel. |
CPane::StretchPaneDeferWndPos | Estira el panel vertical o horizontalmente en función del estilo de acoplamiento. |
CPane::ToggleAutoHide | Cambia el modo de ocultación automática. |
CPane::UndockPane | Quita el panel del sitio de acoplamiento, el control deslizante predeterminado o la ventana minimarco donde está acoplado actualmente. (Reemplaza a CBasePane::UndockPane). |
CPane::UpdateVirtualRect | Actualiza el rectángulo virtual. |
Métodos protegidos
Nombre | Descripción |
---|---|
CPane::OnAfterDock | Llamado por el marco cuando se ha acoplado un panel. |
CPane::OnAfterFloat | Lo llama el marco cuando es flotante un panel. |
CPane::OnBeforeDock | Lo llama el marco cuando un panel está a punto de ser acoplado. |
CPane::OnBeforeFloat | Lo llama el marco cuando un panel está a punto de ser flotante. |
Miembros de datos
Nombre | Descripción |
---|---|
CPane::m_bHandleMinSize | Permite controlar de forma coherente el tamaño mínimo de los paneles. |
CPane::m_recentDockInfo | Contiene información de acoplamiento reciente. |
Comentarios
Normalmente, los objetos CPane
no se crean instancias directamente. Si necesita un panel que tenga funcionalidad de acoplamiento, derive el objeto de CDockablePane. Si necesita funcionalidad de barra de herramientas, derive el objeto de CMFCToolBar.
Cuando se deriva una clase de CPane
, se puede acoplar en un CDockSite y se puede flotar en un CPaneFrameWnd.
Jerarquía de herencia
Requisitos
Encabezado: afxPane.h
CPane::AdjustSizeImmediate
Vuelve a calcular inmediatamente el diseño de un panel.
virtual void AdjustSizeImmediate(BOOL bRecalcLayout = TRUE);
Parámetros
bRecalcLayout
[entrada] TRUE para volver a calcular automáticamente el diseño del panel; de lo contrario, FALSE.
Comentarios
Llame a este método cuando cambie dinámicamente el diseño de un panel. Por ejemplo, puede que quiera llamar a este método al ocultar o mostrar botones de la barra de herramientas.
CPane::AllocElements
Asigna almacenamiento para uso interno.
BOOL AllocElements(
int nElements,
int cbElement);
Parámetros
nElements
[in] Número de elementos para los que se va a asignar el almacenamiento.
cbElement
[in] Tamaño en bytes de un elemento.
Valor devuelto
FALSE si se produce un error en la asignación de memoria; de lo contrario, TRUE.
CPane::AllowShowOnPaneMenu
Especifica si el panel aparece en la lista generada por el tiempo de ejecución de paneles para la aplicación.
virtual BOOL AllowShowOnPaneMenu() const;
Valor devuelto
TRUE si el panel se muestra en la lista; de lo contrario, FALSE. La implementación base siempre devuelve TRUE.
Comentarios
La aplicación generada por AppWizard contiene una opción de menú que enumera los paneles que contiene. Este método determina si el panel se muestra en la lista.
CPane::CalcAvailableSize
Calcula la diferencia de tamaño entre un rectángulo especificado y el rectángulo de ventana actual.
virtual CSize CalcAvailableSize(CRect rectRequired);
Parámetros
rectRequired
[in] Rectángulo necesario.
Valor devuelto
Diferencia de ancho y alto entre rectRequired y el rectángulo de ventana actual.
CPane::CalcInsideRect
Calcula el rectángulo interior de un panel, incluidos los bordes y los agarradores.
void CalcInsideRect(
CRect& rect,
BOOL bHorz) const;
Parámetros
rect
[out] Contiene el tamaño y el desplazamiento del área cliente del panel.
bHorz
[in] TRUE si el panel está orientado de manera horizontal; de lo contrario, FALSE.
Comentarios
El marco llama a este método cuando tiene que recalcular el diseño de un panel. El parámetro rect se rellena con el tamaño y el desplazamiento del área cliente del panel. Esto incluye sus bordes y agarradores.
CPane::CalcRecentDockedRect
Calcula el rectángulo acoplado recientemente.
void CalcRecentDockedRect();
Comentarios
Este método actualiza CPane::m_recentDockInfo.
CPane::CalcSize
Calcula el tamaño del panel.
virtual CSize CalcSize(BOOL bVertDock);
Parámetros
bVertDock
[in] TRUE si el panel se acopla verticalmente, FALSE de lo contrario.
Valor devuelto
La implementación predeterminada de este método devuelve un tamaño de (0, 0).
Comentarios
Las clases derivadas deben invalidar este método.
CPane::CanBeDocked
Determina si el panel se puede acoplar en el panel base especificado.
virtual BOOL CanBeDocked(CBasePane* pDockBar) const;
Parámetros
pDockBar
[in] Especifica el panel donde se va a acoplar este panel.
Valor devuelto
TRUE si este panel se puede acoplar en el panel de acoplamiento especificado; de lo contrario, FALSE.
Comentarios
Normalmente, el marco llama a este método para determinar si un panel se puede acoplar en el panel de acoplamiento especificado. Para determinar si el panel se puede acoplar, el método evalúa la alineación de acoplamiento habilitada actualmente para el panel.
Para habilitar el acoplamiento a los distintos lados de la ventana de marco, llame a CBasePane::EnableDocking.
CPane::CanBeTabbedDocument
Determina si el panel se puede convertir en un documento con pestañas.
virtual BOOL CanBeTabbedDocument() const;
Valor devuelto
TRUE si el panel se puede convertir en un documento con pestañas; de lo contrario, FALSE.
Comentarios
Invalide este método en una clase derivada y devuelva FALSE si desea impedir que un panel se convierta en un documento con pestañas. Un documento con pestañas no aparecerá en el menú Posición de la ventana.
CPane::ConvertToTabbedDocument
Convierte el panel acoplable en un documento con pestañas.
virtual void ConvertToTabbedDocument(BOOL bActiveTabOnly = TRUE);
Parámetros
bActiveTabOnly
[in] No se utiliza en CPane::ConvertToTabbedDocument
.
Comentarios
Solo los paneles acoplables se pueden convertir en documentos con pestañas. Para obtener información, vea CDockablePane::ConvertToTabbedDocument.
CPane::CopyState
Copia el estado de un panel.
virtual void CopyState(CPane* pOrgBar);
Parámetros
pOrgBar
[in] Puntero a un panel.
Comentarios
Este método copia el estado de pOrgBar en el panel actual.
CPane::Create
Crea una barra de control y la adjunta al objeto CPane.
virtual BOOL Create(
LPCTSTR lpszClassName,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID,
DWORD dwControlBarStyle = AFX_DEFAULT_PANE_STYLE,
CCreateContext* pContext = NULL);
Parámetros
lpszClassName
[in] Especifica el nombre de la clase de ventanas.
dwStyle
[in] Especifica los atributos de estilo de ventana. Para más información, consulte Estilos de ventana.
rect
[in] Especifica el tamaño inicial y la posición de la ventana pParentWnd, en coordenadas de cliente.
pParentWnd
[in, ou] Especifica la ventana primaria de este panel.
Nid
[in] Especifica el id. del panel.
dwControlBarStyle
[in] Especifica el estilo del panel. Para obtener más información, vea CBasePane::CreateEx.
pContext
[in, out] Especifica el contexto de creación del panel.
Valor devuelto
TRUE si el panel se creó correctamente; de lo contrario, FALSE.
Comentarios
Este método crea un panel de Windows y lo asocia al objeto CPane
.
Si no ha inicializado explícitamente CPane::m_recentDockInfo antes de llamar a Create
, el rectángulo del parámetro se usará como rectángulo al flotar o acoplar el panel.
CPane::CreateDefaultMiniframe
Crea una ventana de minimarco para un panel flotante.
virtual CPaneFrameWnd* CreateDefaultMiniframe(CRect rectInitial);
Parámetros
rectInitial
[in] Especifica el tamaño inicial y la posición, en coordenadas de pantalla, de la ventana de minimarco que se va a crear.
Valor devuelto
Ventana de marco pequeño recién creado.
Comentarios
El marco llama a este método para crear una ventana de minicuadre cuando un panel está flotante. La ventana de marco mínimo puede ser de tipo CPaneFrameWnd o de tipo CMultiPaneFrameWnd. Se crea una ventana de marco múltiple si el panel tiene el estilo AFX_CBRS_FLOAT_MULTI.
La información de la clase en tiempo de ejecución de la ventana de minimarco se almacena en el miembro CPane::m_pMiniFrameRTC
. Puede usar una clase derivada para establecer este miembro si decide crear ventanas de minimarco personalizadas.
CPane::CreateEx
Crea una barra de control y la adjunta al objeto CPane.
virtual BOOL CreateEx(
DWORD dwStyleEx,
LPCTSTR lpszClassName,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID,
DWORD dwControlBarStyle = AFX_DEFAULT_PANE_STYLE,
CCreateContext* pContext = NULL);
Parámetros
dwStyleEx
[in] Especifica los atributos de estilo de ventana extendidos. Para obtener más información, consulte Estilos de ventana extendidos.
lpszClassName
[in] Especifica el nombre de la clase de ventanas.
dwStyle
[in] Especifica los atributos de estilo de ventana. Para más información, consulte Estilos de ventana.
rect
[in] Especifica el tamaño inicial y la posición de la ventana pParentWnd, en coordenadas de cliente.
pParentWnd
[in, ou] Especifica la ventana primaria de este panel.
Nid
[in] Especifica el id. del panel.
dwControlBarStyle
[in] Especifica el estilo del panel. Para obtener más información, vea CBasePane::CreateEx.
pContext
[in, out] Especifica el contexto de creación del panel.
Valor devuelto
TRUE si el panel se creó correctamente; de lo contrario, FALSE.
Comentarios
Este método crea un panel de Windows y lo asocia al objeto CPane
.
Si no ha inicializado explícitamente CPane::m_recentDockInfo antes de llamar a CreateEx
, el rectángulo del parámetro se usará como rectángulo al flotar o acoplar el panel.
CPane::DockByMouse
Acopla un panel mediante el mouse.
virtual BOOL DockByMouse(CBasePane* pDockBar);
Parámetros
pDockBar
[in] Especifica el panel base al que se va a acoplar este panel.
Valor devuelto
TRUE si el panel se acopla correctamente; de lo contrario, FALSE.
CPane::DockPane
Acopla el panel flotante a un panel base.
virtual BOOL DockPane(
CBasePane* pDockBar,
LPCRECT lpRect,
AFX_DOCK_METHOD dockMethod);
Parámetros
pDockBar
[in, out] Especifica la base acoplable al que se acopla este panel.
lpRect
[in] Especifica el rectángulo en el panel base donde se va a acoplar este panel.
dockMethod
[in] Especifica el método de acoplamiento para usar. Las opciones disponibles son las siguientes:
Opción | Descripción |
---|---|
DM_UNKNOWN | El marco de trabajo usa esta opción cuando se desconoce el método de acoplamiento. El panel no almacena su posición flotante más reciente. También puede usar esta opción para acoplar mediante programación un panel cuando no tenga que almacenar la posición flotante reciente. |
DM_MOUSE | Utilizado de forma interna. |
DM_DBL_CLICK | Esta opción se usa cuando se hace doble clic en la pinza. El panel se cambia de posición en su posición de acoplamiento más reciente. Si el panel está desacoplar haciendo doble clic, el panel se cambia de posición en su posición flotante más reciente. |
DM_SHOW | Esta opción se puede usar para acoplar mediante programación el panel. El panel almacena su posición flotante más reciente. |
DM_RECT | El panel está acoplado en la región especificada por lpRect. |
DM_STANDARD | Cuando se usa esta opción, el marco dibuja el panel como marco de esquema mientras se mueve. |
Valor devuelto
TRUE si el panel se acopla correctamente; de lo contrario, FALSE.
Comentarios
Este método acopla el panel al panel base especificado por el parámetro pDockBar. Primero debe habilitar el acoplamiento llamando a CBasePane::EnableDocking.
CPane::DockPaneStandard
Acopla un panel mediante el acoplamiento de contorno (estándar).
virtual CPane* DockPaneStandard(BOOL& bWasDocked);
Parámetros
bWasDocked
[in] TRUE si el panel se acopla correctamente; de lo contrario, FALSE.
Valor devuelto
Este método devuelve siempre el puntero this
.
Comentarios
Este método solo se usa para paneles derivados de la clase CDockablePane. Para obtener más información, vea CDockablePane::D ockPaneStandard.
CPane::DockToFrameWindow
Acopla un panel acoplable a un marco.
virtual BOOL DockToFrameWindow(
DWORD dwAlignment,
LPCRECT lpRect = NULL,
DWORD dwDockFlags = DT_DOCK_LAST,
CBasePane* pRelativeBar = NULL,
int nRelativeIndex = -1,
BOOL bOuterEdge = FALSE);
Parámetros
dwAlignment
[in] El lado del marco primario al que desea acoplar el panel.
lpRect
[in] Tamaño especificado.
dwDockFlags
[in] Ignorado.
pRelativeBar
[in] Ignorado.
nRelativeIndex
[in] Ignorado.
bOuterEdge
[in] Si es TRUE y hay otros paneles acoplables en el lado que dwAlignment está especificado, el panel se acopla fuera de los demás paneles, más cerca del borde del marco primario. Si es FALSE, el panel se acopla más cerca del centro del área cliente.
Valor devuelto
FALSE si no se puede crear un divisor de panel (clase CPaneDivider); de lo contrario, TRUE.
Comentarios
CPane::DoesAllowSiblingBars
Indica si puede acoplar otro panel en la misma fila donde está acoplado el panel actual.
virtual BOOL DoesAllowSiblingBars() const;
Valor devuelto
TRUE si este panel puede acoplarse a otro panel en la misma fila que en sí mismo; de lo contrario, FALSE.
Comentarios
Puede habilitar o deshabilitar este comportamiento llamando a CPane::SetExclusiveRowMode.
De forma predeterminada, las barras de herramientas tienen el modo de fila exclusivo deshabilitado y la barra de menús tiene habilitado el modo de fila exclusivo.
CPane::FloatPane
Hace que el panel flote.
virtual BOOL FloatPane(
CRect rectFloat,
AFX_DOCK_METHOD dockMethod = DM_UNKNOWN,
bool bShow = true);
Parámetros
rectFloat
[in] Especifica la ubicación, en coordenadas de pantalla, para colocar el panel cuando se flota.
dockMethod
[in] Especifica el método de acoplamiento que se va a usar cuando el panel está flotante. Para una lista de los valores posibles, consulte CPane::DockPane.
bShow
[in] TRUE para mostrar el panel cuando se flota; de lo contrario, FALSE.
Valor devuelto
TRUE si el panel se ha flotante correctamente o si el panel no se puede flotar porque CBasePane::CanFloat devuelve FALSE; de lo contrario, FALSE.
Comentarios
Llame a este método para flotar el panel en la posición especificada por el parámetro rectFloat. Este método crea automáticamente una ventana de minimarco principal para el panel.
CPane::GetAvailableExpandSize
Devuelve la cantidad, en píxeles, que el panel puede expandir.
virtual int GetAvailableExpandSize() const;
Valor devuelto
Si el panel está acoplado horizontalmente, el valor devuelto es el ancho disponible; de lo contrario, el valor devuelto es el alto disponible.
Comentarios
CPane::GetAvailableStretchSize
Devuelve la cantidad, en píxeles, que el panel puede reducir.
virtual int GetAvailableStretchSize() const;
Valor devuelto
La cantidad, en píxeles, que el panel puede reducir. Si el panel está acoplado horizontalmente, esta cantidad es el ancho disponible; de lo contrario, es el alto disponible.
Comentarios
El tamaño de stretch disponible se calcula restando el tamaño mínimo permitido para el panel (CPane::GetMinSize) del tamaño actual (CWnd::GetWindowRect).
CPane::GetBorders
Devuelve el ancho de los bordes del panel.
CRect GetBorders() const;
Valor devuelto
Objeto CRect que contiene el ancho actual, en píxeles, de cada lado del panel. Por ejemplo, el valor del miembro left
del objeto CRect
es el ancho del borde izquierdo.
Comentarios
Para establecer el tamaño de los bordes, llame a CPane::SetBorders.
CPane::GetClientHotSpot
Devuelve la zona activa del panel.
CPoint GetClientHotSpot() const;
Valor devuelto
Comentarios
La zona activa es el punto del panel que el usuario selecciona y mantiene para mover el panel. Una zona activa se usa para una animación suave cuando el panel se mueve desde una posición acoplada.
CPane::GetDockSiteRow
Devuelve la fila de acoplamiento (CDockingPanesRow Class) en la que se acopla el panel.
CDockingPanesRow* GetDockSiteRow() const;
Valor devuelto
* CDockingPanesRow
que apunta a la fila de acoplamiento en la que se acopla el panel o NULL si el panel no está acoplado.
CPane::GetExclusiveRowMode
Determina si el panel está en modo de fila exclusivo.
virtual BOOL GetExclusiveRowMode() const;
Valor devuelto
TRUE si el panel está en modo de fila exclusivo; de lo contrario, FALSE.
Comentarios
Para obtener más información sobre el modo de fila exclusivo, vea CPane::SetExclusiveRowMode.
CPane::GetHotSpot
Devuelve la zona activa que se almacena en un objeto subyacente CMFCDragFrameImpl
.
CPoint GetHotSpot() const;
Valor devuelto
Comentarios
La clase CPane
contiene un objeto CMFCDragFrameImpl
, m_dragFrameImpl
que es responsable de dibujar el rectángulo que aparece cuando el usuario mueve un panel en el modo de acoplamiento estándar. La zona activa se usa para dibujar el rectángulo en relación con la posición actual del mouse a medida que el usuario mueve el panel.
CPane::GetMinSize
Recupera el tamaño mínimo permitido para el panel.
virtual void GetMinSize(CSize& size) const;
Parámetros
size
[out] Objeto CSize
que se rellena con el tamaño mínimo permitido.
Comentarios
CPane::GetPaneName
Recupera el título del panel.
virtual void GetPaneName(CString& strName) const;
Parámetros
strName
[out] Objeto CString
que se rellena con el nombre del título.
Comentarios
El título del panel se muestra en el área de título cuando el panel está acoplado o flotante. Si el panel forma parte de un grupo con pestañas, el título se muestra en el área de fichas. Si el panel está en modo de ocultación automática, el título se muestra en un CMFCAutoHideButton
.
CPane::GetVirtualRect
Recupera el rectángulo virtual del panel.
void GetVirtualRect(CRect& rectVirtual) const;
Parámetros
rectVirtual
[out] Objeto CRect
que se rellena con el rectángulo virtual.
Comentarios
Cuando se mueve un panel, el marco almacena la posición original del panel en un rectángulo virtual. El marco de trabajo puede usar el rectángulo virtual para restaurar la posición original del panel.
No llame a métodos relacionados con rectángulos virtuales a menos que mueva paneles mediante programación.
CPane::IsChangeState
A medida que se mueve el panel, este método analiza su posición en relación con otros paneles, filas de acoplamiento y ventanas de minimarco y devuelve el valor de AFX_CS_STATUS adecuado.
virtual AFX_CS_STATUS IsChangeState(
int nOffset,
CBasePane** ppTargetBar) const;
Parámetros
nOffset
[in] Especifica la sensibilidad de acoplamiento. Por ejemplo, se acoplará un panel que se mueve dentro de nOffset píxeles de una fila de acoplamiento.
ppTargetBar
[in] Cuando el método devuelve, ppTargetBar contiene un puntero al objeto al que se debe acoplar el panel actual o NULL si no se debe realizar ningún acoplamiento.
Valor devuelto
Uno de los siguientes valores de AFX_CS_STATUS:
Valor | Descripción |
---|---|
CS_NOTHING | El panel no está cerca de un sitio de acoplamiento. El marco no acopla el panel. |
CS_DOCK_IMMEDIATELY | El panel se encuentra sobre un sitio de acoplamiento y el estilo DT_IMMEDIATE está habilitado. El marco acopla el panel inmediatamente. |
CS_DELAY_DOCK | El panel se encuentra sobre un sitio de acoplamiento que tanto es otro panel de acoplamiento o un borde del marco principal. El marco acopla el panel cuando el usuario libera el movimiento. |
CS_DELAY_DOCK_TO_TAB | El panel está sobre un sitio de acoplamiento que hace que el panel se acople a una ventana con pestañas. Esto ocurre cuando el panel está o sobre el título de otro panel de acoplamiento o sobre el área de fichas de un panel con fichas. El marco acopla el panel cuando el usuario libera el movimiento. |
CPane::IsDragMode
Especifica si el panel se está moviendo.
virtual BOOL IsDragMode() const;
Valor devuelto
TRUE si el panel se está moviendo; de lo contrario, FALSE.
Comentarios
CPane::IsInFloatingMultiPaneFrameWnd
Especifica si el panel está en una ventana de marco de varios paneles (clase CMultiPaneFrameWnd).
virtual BOOL IsInFloatingMultiPaneFrameWnd() const;
Valor devuelto
TRUE si el panel está en una ventana de marco de varios paneles; de lo contrario, FALSE.
Comentarios
Solo los paneles acoplables pueden flotar en una ventana de marco de varios paneles. Por lo tanto, CPane::IsInFloatingMultiPaneFrameWnd
siempre devuelve FALSE.
CPane::IsLeftOf
Determina si el panel está a la izquierda (o superior) del rectángulo especificado.
bool IsLeftOf(
CRect rect,
bool bWindowRect = true) const;
Parámetros
rect
[in] Objeto CRect
que se usa para la comparación.
bWindowRect
[in] Si es TRUE, se supone que rect que contienen coordenadas de pantalla; si es FALSE, se supone que rect contiene coordenadas de cliente.
Valor devuelto
Comentarios
Si el panel está acoplado horizontalmente, este método comprueba si su ubicación queda de rect. De lo contrario, este método comprueba si la ubicación está por encima de rect.
CPane::IsResizable
Especifica si el panel se puede cambiar de tamaño.
virtual BOOL IsResizable() const;
Valor devuelto
TRUE si el panel es redimensionable; de lo contrario, FALSE.
Comentarios
Los objetos base CPane
no se pueden cambiar de tamaño.
El administrador de acoplamiento usa la marca redimensionable para determinar el diseño del panel. Los paneles no redimensionables siempre se encuentran en los bordes exteriores del marco primario.
Los paneles que no se pueden cambiar de tamaño no pueden residir en contenedores de acoplamiento.
CPane::IsTabbed
Determina si el panel se insertó en el control de pestaña de una ventana con pestañas.
virtual BOOL IsTabbed() const;
Valor devuelto
TRUE si el panel está tiene pestañas; de lo contrario, FALSE.
Comentarios
El estado con pestañas se trata por separado de los estados flotante, acoplado y ocultación automática.
CPane::LoadState
Carga el estado del panel desde el registro.
virtual BOOL LoadState(
LPCTSTR lpszProfileName = NULL,
int nIndex = -1,
UINT uiID = (UINT) -1);
Parámetros
lpszProfileName
[in] Nombre del perfil.
nIndex
[in] Índice del perfil.
uiID
[in] Identificador del panel.
Valor devuelto
TRUE si el estado del panel se cargó correctamente; de lo contrario, FALSE.
Comentarios
El marco llama a este método para cargar el estado del panel desde el Registro. Invalídelo en una clase derivada para cargar información adicional que está guardada por CPane::SaveState.
Al invalidar este método, llame también al método base y devuelva FALSE si el método base devuelve FALSE.
CPane::m_bHandleMinSize
Permite controlar de forma coherente los tamaños mínimos del panel.
AFX_IMPORT_DATA static BOOL m_bHandleMinSize;
Comentarios
Si uno o varios paneles de acoplamiento en la aplicación invalidan GetMinSize
o si la aplicación llama a SetMinSize
, es posible que quiera establecer este miembro estático en TRUE para permitir que el marco controle de forma coherente el tamaño de los paneles.
Si este valor se establece en TRUE, todos los paneles cuyo tamaño debe reducirse por debajo de su tamaño mínimo se recortan, no se estiran. Dado que el marco de trabajo usa regiones de ventana con fines de ajuste de tamaño de panel, no cambie el tamaño de la región de la ventana para acoplar paneles si este valor está establecido en TRUE.
CPane::m_recentDockInfo
Contiene información de acoplamiento reciente.
CRecentDockSiteInfo m_recentDockInfo;
Comentarios
El marco almacena la información de estado de acoplamiento más reciente para el panel de este miembro.
CPane::MoveByAlignment
Mueve el panel y el rectángulo virtual por la cantidad especificada.
BOOL MoveByAlignment(
DWORD dwAlignment,
int nOffset);
Parámetros
dwAlignment
[in] Especifica la alineación del panel.
nOffset
[in] Cantidad, en píxeles, por la que se va a mover el panel y el rectángulo virtual.
Valor devuelto
Comentarios
dwAlignment puede ser cualquiera de los siguientes valores:
Valor | Descripción |
---|---|
CBRS_ALIGN_TOP | Permite que el panel se acople a la parte superior del área cliente de una ventana de marco. |
CBRS_ALIGN_BOTTOM | Permite que el panel se acople a la parte inferior del área cliente de una ventana de marco. |
CBRS_ALIGN_LEFT | Permite que el panel se acople a la parte izquierda del área cliente de una ventana de marco. |
CBRS_ALIGN_RIGHT | Permite que el panel se acople a la parte derecha del área cliente de una ventana de marco. |
CBRS_ALIGN_ANY | Permite que el panel se acople a cualquier parte del área cliente de una ventana de marco. |
Si dwAlignment contiene la marca CBRS_ALIGN_LEFT o CBRS_ALIGN_RIGHT, el panel y el rectángulo virtual se mueven horizontalmente; de lo contrario, si dwAlignment contiene la marca CBRS_ALIGN_TOP o CBRS_ALIGN_BOTTOM, el panel y el rectángulo virtual se mueven verticalmente.
CPane::MovePane
Mueve el panel al rectángulo especificado.
virtual CSize MovePane(
CRect rectNew,
BOOL bForceMove,
HDWP& hdwp);
Parámetros
rectNew
[in] Especifica el nuevo rectángulo para el panel.
bForceMove
[in] Si es TRUE, este método omite el tamaño mínimo permitido del panel (CPane::GetMinSize); de lo contrario, el panel se ajusta, si es necesario, para asegurarse de que es al menos el tamaño mínimo permitido.
hdwp
[in] No se utiliza.
Valor devuelto
Objeto CSize
que contiene las diferencias de ancho y alto entre los rectángulos nuevos y antiguos (rectángulo antiguo - rectNew).
Comentarios
Este método solo se usa para paneles acoplables.
CPane::OnAfterChangeParent
Lo llama el marco cuando el elemento primario de un panel ha cambiado.
virtual void OnAfterChangeParent(CWnd* pWndOldParent);
Parámetros
pWndOldParent
[in, out] Ventana primaria anterior del panel.
Comentarios
El marco llama a este método cuando el elemento primario de un panel ha cambiado debido a una operación de acoplamiento o flotante.
CPane::OnAfterDock
Llamado por el marco cuando se ha acoplado un panel.
virtual void OnAfterDock(
CBasePane* pBar,
LPCRECT lpRect,
AFX_DOCK_METHOD dockMethod);
Parámetros
pBar
[in] Este parámetro no se utiliza.
lpRect
[in] Este parámetro no se utiliza.
dockMethod
[in] Este parámetro no se utiliza.
CPane::OnAfterFloat
Lo llama el marco después de que un panel flote.
virtual void OnAfterFloat();
Comentarios
Puede invalidar este método en una clase derivada si quiere realizar cualquier procesamiento después de que el panel esté flotante.
CPane::OnBeforeChangeParent
Lo llama el marco cuando el elemento primario del panel está a punto de cambiar.
virtual void OnBeforeChangeParent(
CWnd* pWndNewParent,
BOOL bDelay = FALSE);
Parámetros
pWndNewParent
[in, out] Especifica la nueva ventana primaria.
bDelay
[in] TRUE para retrasar el ajuste del diseño de acoplamiento global; de lo contrario, FALSE.
Comentarios
El marco llama a este método cuando el elemento primario del panel está a punto de cambiar porque el panel se acopla o flota.
De forma predeterminada, el panel no se registra con el panel de acoplamiento llamando a CDockSite::RemovePane
.
CPane::OnBeforeDock
Lo llama el marco cuando un panel está a punto de acoplarse.
virtual BOOL OnBeforeDock(
CBasePane** ppDockBar,
LPCRECT lpRect,
AFX_DOCK_METHOD dockMethod);
Parámetros
ppDockBar
[in, out] Especifica el panel al que se acopla este panel.
lpRect
[in] Especifica el rectángulo de acoplamiento.
dockMethod
[in] Especifica el método de acoplamiento.
Valor devuelto
TRUE si el panel se puede acoplar. Si la función devuelve FALSE, se anulará la operación de acoplamiento.
Comentarios
El marco llama a este método cuando un panel está a punto de acoplarse. Puede invalidar este método en una clase derivada si quiere realizar cualquier procesamiento antes de que el panel se acople finalmente.
CPane::OnBeforeFloat
Llamado por el marco cuando un panel está a punto de flotar.
virtual BOOL OnBeforeFloat(
CRect& rectFloat,
AFX_DOCK_METHOD dockMethod);
Parámetros
rectFloat
[in] Especifica la posición y el tamaño del panel cuando está en un estado flotante.
dockMethod
[in] Especifica el método de acoplamiento del panel.
Valor devuelto
Es TRUE si el panel puede ser flotante; de lo contrario, es FALSE.
Comentarios
El marco llama a este método cuando un panel está a punto de ser flotante. Puede invalidar este método en una clase derivada si quiere realizar cualquier procesamiento antes de que el panel finalmente esté flotante.
CPane::OnPressCloseButton
Lo llama el marco cuando el usuario pulsa el botón Cerrar en el título del panel.
virtual void OnPressCloseButton();
Comentarios
El marco llama a este método cuando un usuario presiona el botón Cerrar en el título del panel. Para recibir notificaciones sobre el evento Cerrar, puede invalidar este método en una clase derivada.
CPane::OnShowControlBarMenu
Lo llama el marco de trabajo cuando está a punto de mostrarse un menú de panel especial.
virtual BOOL OnShowControlBarMenu(CPoint point);
Parámetros
point
[in] Especifica la ubicación del menú.
Valor devuelto
TRUE si se puede mostrar el menú; de lo contrario, FALSE.
Comentarios
El menú contiene varios elementos que permiten especificar el comportamiento del panel, es decir: Flotante, Acoplamiento, AutoHide y Ocultar. Puede habilitar este menú para todos los paneles llamando a CDockingManager::EnableDockSiteMenu.
CPane::RecalcLayout
Recalcula la información de diseño del panel.
virtual void RecalcLayout();
Comentarios
Si el panel está acoplado, este método actualiza el rectángulo virtual del panel estableciendo su tamaño en el tamaño actual del panel.
Si el panel está flotante, este método notifica al minimarco primario para ajustar el tamaño del panel al tamaño del minimarco. El marco garantiza que el minimarco sea al menos el tamaño mínimo permitido para el panel ( CPane::GetMinSize) y cambie el tamaño del minimarco si es necesario.
CPane::SaveState
Guarda el estado del panel en el registro.
virtual BOOL SaveState(
LPCTSTR lpszProfileName = NULL,
int nIndex = -1,
UINT uiID = (UINT) -1);
Parámetros
lpszProfileName
[in] Nombre del perfil.
nIndex
[in] Índice del perfil.
uiID
[in] Identificador del panel.
Valor devuelto
TRUE si el estado se guardó correctamente; de lo contrario, FALSE.
Comentarios
El marco llama a este método cuando guarda el estado del panel en el Registro. Invalide SaveState
en una clase derivada para almacenar información adicional.
Al invalidar este método, llame también al método base y devuelva FALSE si el método base devuelve FALSE.
CPane::SetActiveInGroup
Marca un panel como activo.
virtual void SetActiveInGroup(BOOL bActive);
Parámetros
bActive
[in] BOOL que especifica si el panel está marcado como activo.
Comentarios
Cuando se muestra un panel acoplable o se elige un botón ocultar automáticamente, el panel de ocultación automática correspondiente se marca como activo.
La apariencia de un botón de ocultación automática asociado al panel se basa en dos factores. Si el panel está activo y static BOOL CMFCAutoHideButton::m_bOverlappingTabs
es TRUE, el marco muestra el botón ocultar automáticamente como un icono y una etiqueta. En el caso de un panel inactivo, el marco muestra solo el icono de ocultación automática.
Si CMFCAutoHideButton::m_bOverlappingTabs
es FALSE o si el panel no se encuentra en un grupo, el marco muestra el botón ocultar automáticamente asociado como un icono y una etiqueta.
CPane::SetBorders
Establece los valores de borde del panel.
void SetBorders(
int cxLeft = 0,
int cyTop = 0,
int cxRight = 0,
int cyBottom = 0);
void SetBorders(LPCRECT lpRect);
Parámetros
cxLeft
[in] Especifica el ancho, en píxeles, del borde izquierdo del panel.
cyTop
[in] Especifica el ancho, en píxeles, del borde superior del panel.
cxRight
[in] Especifica el ancho, en píxeles, del borde derecho del panel.
cyBottom
[in] Especifica el ancho, en píxeles, del borde inferior del panel.
lpRect
[in] Objeto CRect que contiene el ancho, en píxeles, de cada borde del panel.
Comentarios
Llame a esta función para establecer los tamaños de los bordes del panel.
CPane::SetClientHotSpot
Establece la zona activa del panel.
void SetClientHotSpot(const CPoint& ptNew);
Parámetros
ptNew
[in] Objeto CPoint
que especifica la nueva zona activa.
Comentarios
La zona activa es el punto del panel que el usuario selecciona y mantiene para mover el panel. Una zona activa se usa para una animación suave cuando el panel se desplaza desde una posición acoplada.
CPane::SetDockState
Restaura la información de estado de acoplamiento del panel.
virtual void SetDockState(CDockingManager* pDockManager);
Parámetros
pDockManager
[in] Puntero al administrador de acoplamiento para la ventana de marco principal.
Comentarios
El marco llama a este método para restaurar la información de estado de acoplamiento reciente para el panel. Un panel almacena información de estado de acoplamiento reciente en CPane::m_recentDockInfo. Para obtener más información, vea CRecentDockSiteInfo (clase).
También puede llamar a este método para establecer el estado de acoplamiento al cargar información del panel desde un origen externo.
CPane::SetExclusiveRowMode
Habilita o deshabilita el modo de fila exclusivo.
virtual void SetExclusiveRowMode(BOOL bExclusive = TRUE);
Parámetros
bExclusive
[in] TRUE para habilitar el modo de fila exclusivo; de lo contrario, FALSE.
Comentarios
Llame a este método para habilitar o deshabilitar el modo de fila exclusivo. Cuando un panel está en modo de fila exclusivo, no puede compartir la misma fila con ninguna otra barra de herramientas.
De forma predeterminada, todas las barras de herramientas tienen el modo de fila exclusivo deshabilitado y la barra de menús tiene habilitado el modo de fila exclusivo.
CPane::SetMinSize
Establece el tamaño mínimo permitido para el panel.
void SetMinSize(const CSize& size);
Parámetros
size
[in] Objeto CSize
que contiene el tamaño mínimo permitido para el panel.
Comentarios
CPane::SetVirtualRect
Establece el rectángulo virtual del panel.
void SetVirtualRect(
const CRect& rect,
BOOL bMapToParent = TRUE);
Parámetros
rect
[in] Objeto CRect
que especifica el rectángulo virtual que se va a establecer.
bMapToParent
[in] Especifique TRUE si rect contiene puntos relativos a la ventana primaria.
Comentarios
Un rectángulo virtual almacena la posición original de un panel cuando se mueve. El marco de trabajo puede usar el rectángulo virtual para restaurar la posición original.
No llame a métodos relacionados con rectángulos virtuales a menos que mueva paneles mediante programación.
CPane::SetMiniFrameRTC
Establece la información de la clase en tiempo de ejecución para la ventana predeterminada de minimarco.
void SetMiniFrameRTC(CRuntimeClass* pClass);
Parámetros
pClass
[in, out] Especifica la información de la clase en tiempo de ejecución para la ventana de minimarco.
Comentarios
Cuando se flota un panel, se coloca en una ventana CPaneFrameWnd (minimarco). Puede proporcionar una clase derivada personalizada CPaneFrameWnd
que se usará cuando se llame a CPane::CreateDefaultMiniframe.
CPane::StretchPaneDeferWndPos
Estira el panel vertical o horizontalmente en función del estilo de acoplamiento.
virtual int StretchPaneDeferWndPos(
int nStretchSize,
HDWP& hdwp);
Parámetros
nStretchSize
[in] Cantidad, en píxeles, para estirar el panel. Use un valor negativo para reducir el panel.
hdwp
[in] No se utiliza.
Valor devuelto
Cantidad real, en píxeles, que se ha extendido el panel.
Comentarios
Si es necesario, este método modifica nStretchSize para asegurarse de que el panel no supera los límites de tamaño. Estos límites se obtienen llamando a CPane::GetAvailableStretchSize y CPane::GetAvailableExpandSize.
CPane::ToggleAutoHide
Cambia el modo de ocultación automática.
virtual void ToggleAutoHide();
Comentarios
Llame a este método para alternar el modo de ocultación automática. Un panel debe acoplarse a una ventana de marco principal para cambiar al modo de ocultación automática.
CPane::UndockPane
Quita el panel del sitio de acoplamiento, el control deslizante predeterminado o la ventana minimarco donde está acoplado actualmente.
virtual void UndockPane(BOOL bDelay = FALSE);
Parámetros
bDelay
[in] Si es FALSE, el marco llama a CBasePane::AdjustDockingLayout para ajustar el diseño de acoplamiento.
Comentarios
Use este método para desacoplar un panel mediante programación.
CPane::UpdateVirtualRect
Actualiza el rectángulo virtual.
void UpdateVirtualRect();
void UpdateVirtualRect(CPoint ptOffset);
void UpdateVirtualRect(CSize sizeNew);
Parámetros
ptOffset
[in] Objeto CPoint
que especifica un desplazamiento por el que se va a desplazar el panel.
sizeNew
[in] Objeto CSize
que especifica un nuevo tamaño para el panel.
Comentarios
La primera sobrecarga establece el rectángulo virtual mediante la posición actual y el tamaño del panel.
La segunda sobrecarga desplaza el rectángulo virtual por la cantidad especificada por ptOffset.
La tercera sobrecarga establece el rectángulo virtual mediante la posición actual del panel y el tamaño especificado por sizeNew.