Compartir a través de


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

CObject

CCmdTarget

CWnd

CBasePane

CPane

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

* CDockingPanesRowque 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 GetMinSizeo 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.

Consulte también

Gráfico de jerarquías
Clases
CBasePane (clase)