Classe CPane
A classe CPane
é um aprimoramento da classe CControlBar. Se você estiver atualizando um projeto MFC existente, substitua todas as ocorrências de CControlBar
por CPane
.
Sintaxe
class CPane : public CBasePane
Membros
Construtores públicos
Nome | Descrição |
---|---|
CPane::~CPane |
Destruidor. |
Métodos públicos
Nome | Descrição |
---|---|
CPane::AdjustSizeImmediate | Recalcula imediatamente o layout de um painel. |
CPane::AllocElements | Aloca armazenamento para uso interno. |
CPane::AllowShowOnPaneMenu | Especifica se o painel está relacionado na lista de painéis gerados por runtime para o aplicativo. |
CPane::CalcAvailableSize | Calcula a diferença de tamanho entre um retângulo especificado e o retângulo da janela atual. |
CPane::CalcInsideRect | Calcula o retângulo interno de um painel, levando em conta as bordas e as garras. |
CPane::CalcRecentDockedRect | Calcula o retângulo encaixado recentemente. |
CPane::CalcSize | Calcula o tamanho do painel. |
CPane::CanBeDocked | Determina se o painel pode ser encaixado no painel base especificado. |
CPane::CanBeTabbedDocument | Determina se o painel pode ser convertido em um documento com guias. |
CPane::ConvertToTabbedDocument | Converte um painel encaixável em um documento com guias. |
CPane::CopyState | Copia o estado de um painel. (Substitui CBasePane::CopyState.) |
CPane::Create | Cria uma barra de controle e a anexa ao objeto CPane . |
CPane::CreateDefaultMiniframe | Cria uma janela com minimoldura para um painel flutuante. |
CPane::CreateEx | Cria uma barra de controle e a anexa ao objeto CPane . |
CPane::CreateObject |
Usado pela estrutura para criar uma instância dinâmica desse tipo de classe. |
CPane::DockByMouse | Encaixa um painel usando o método de encaixe do mouse. |
CPane::DockPane | Encaixa o painel flutuante em um painel base. |
CPane::DockPaneStandard | Encaixa um painel usando o encaixe de contorno (padrão). |
CPane::DockToFrameWindow | Encaixa um painel encaixável em um quadro. (Substitui CBasePane::DockToFrameWindow .) |
CPane::DoesAllowSiblingBars | Indica se você pode encaixar outro painel na mesma linha em que o painel atual está encaixado. |
CPane::FloatPane | Faz o painel flutuar. |
CPane::GetAvailableExpandSize | Retorna a quantidade, em pixels, que o painel pode expandir. |
CPane::GetAvailableStretchSize | Retorna a quantidade, em pixels, que o painel pode reduzir. |
CPane::GetBorders | Retorna a largura das bordas do painel. |
CPane::GetClientHotSpot | Retorna o ponto de acesso para o painel. |
CPane::GetDockSiteRow | Retorna a linha de encaixe na qual o painel está encaixado. |
CPane::GetExclusiveRowMode | Determina se o painel está no modo de linha exclusivo. |
CPane::GetHotSpot | Retorna o ponto de acesso que é armazenado em um objeto CMFCDragFrameImpl subjacente. |
CPane::GetMinSize | Recupera o tamanho mínimo permitido para o painel. |
CPane::GetPaneName | Recupera o título do painel. |
CPane::GetResizeStep |
Usado internamente. |
CPane::GetThisClass |
Usado pela estrutura para obter um ponteiro para o objeto CRuntimeClass associado a esse tipo de classe. |
CPane::GetVirtualRect | Recupera o retângulo virtual do painel. |
CPane::IsChangeState | À medida que o painel é movido, esse método analisa a posição do painel em relação a outros painéis, linhas de encaixe e janelas com minimoldura e, em seguida, retorna o valor de AFX_CS_STATUS apropriado. |
CPane::IsDragMode | Especifica se o painel está sendo arrastado. |
CPane::IsInFloatingMultiPaneFrameWnd | Especifica se o painel está em uma janela de quadro com vários painéis. (Substitui CBasePane::IsInFloatingMultiPaneFrameWnd .) |
CPane::IsLeftOf | Determina se o painel está à esquerda (ou acima) do retângulo especificado. |
CPane::IsResizable | Determina se o painel pode ser redimensionado. (Substitui CBasePane::IsResizable.) |
CPane::IsTabbed | Determina se o painel foi inserido no controle guia de uma janela com guias. (Substitui CBasePane::IsTabbed.) |
CPane::LoadState | Carrega o estado do painel do Registro. (Substitui CBasePane::LoadState.) |
CPane::MoveByAlignment | Move o painel e o retângulo virtual pela quantidade especificada. |
CPane::MovePane | Move o painel para o retângulo especificado. |
CPane::OnAfterChangeParent | Chamado pela estrutura quando o pai de um painel foi alterado. |
CPane::OnBeforeChangeParent | Chamado pela estrutura quando o pai do painel está prestes a ser alterado. |
CPane::OnPressCloseButton | Chamado pela estrutura quando o usuário escolhe o botão Fechar na legenda do painel. |
CPane::OnProcessDblClk |
Usado internamente. |
CPane::OnShowControlBarMenu | Chamado pela estrutura quando um menu de painel especial está prestes a ser exibido. |
CPane::OnShowControlBarMenu | Chamado pela estrutura quando um menu de painel especial está prestes a ser exibido. |
CPane::PrepareToDock |
Usado internamente. |
CPane::RecalcLayout | Recalcula informações de layout do painel. (Substitui CBasePane::RecalcLayout.) |
CPane::SaveState | Salva o estado do painel no registro. (Substitui CBasePane::SaveState.) |
CPane::SetActiveInGroup | Sinaliza um painel como ativo. |
CPane::SetBorders | Define os valores de borda do painel. |
CPane::SetClientHotSpot | Define o ponto de acesso para o painel. |
CPane::SetDockState | Restaura as informações de estado de encaixe do painel. |
CPane::SetExclusiveRowMode | Habilita ou desabilita o modo de linha exclusivo. |
CPane::SetMiniFrameRTC | Define as informações de classe de runtime para a janela com minimoldura padrão. |
CPane::SetMinSize | Define o tamanho mínimo permitido para o painel. |
CPane::SetVirtualRect | Define o retângulo virtual do painel. |
CPane::StretchPaneDeferWndPos | Alonga o painel no sentido vertical ou horizontal com base no estilo de encaixe. |
CPane::ToggleAutoHide | Alterna o modo de ocultação automática. |
CPane::UndockPane | Remove o painel do local de encaixe, do controle deslizante padrão ou da janela com minimoldura em que ele está encaixado. (Substitui CBasePane::UndockPane.) |
CPane::UpdateVirtualRect | Atualiza o retângulo virtual. |
Métodos protegidos
Nome | Descrição |
---|---|
CPane::OnAfterDock | Chamado pela estrutura quando um painel foi encaixado. |
CPane::OnAfterFloat | Chamado pela estrutura quando um painel flutuou. |
CPane::OnBeforeDock | Chamado pela estrutura quando um painel está prestes a ser encaixado. |
CPane::OnBeforeFloat | Chamado pela estrutura quando um painel está prestes a flutuado. |
Membros de dados
Nome | Descrição |
---|---|
CPane::m_bHandleMinSize | Habilita a manipulação consistente do tamanho mínimo para painéis. |
CPane::m_recentDockInfo | Contém informações recentes de encaixe. |
Comentários
Em geral, os objetos CPane
não são instanciados diretamente. Se você precisar de um painel que tenha funcionalidade de encaixe, derive o objeto de CDockablePane. Se for necessária a funcionalidade da barra de ferramentas, derive o objeto de CMFCToolBar.
Quando você deriva uma classe de CPane
, ela pode ser encaixada em um CDockSite e flutuada em um CPaneFrameWnd.
Hierarquia de herança
Requisitos
Cabeçalho: afxPane.h
CPane::AdjustSizeImmediate
Recalcula imediatamente o layout de um painel.
virtual void AdjustSizeImmediate(BOOL bRecalcLayout = TRUE);
Parâmetros
bRecalcLayout
[in] TRUE para recalcular automaticamente o layout do painel; caso contrário, FALSE.
Comentários
Chame esse método quando você alterar dinamicamente o layout de um painel. Por exemplo, talvez você queira chamar esse método quando ocultar ou mostrar botões da barra de ferramentas.
CPane::AllocElements
Aloca armazenamento para uso interno.
BOOL AllocElements(
int nElements,
int cbElement);
Parâmetros
nElements
[in] O número de elementos para os quais alocar armazenamento.
cbElement
[in] O tamanho de um elemento, em bytes.
Valor de retorno
FALSE se a alocação de memória falhar; caso contrário, TRUE.
CPane::AllowShowOnPaneMenu
Especifica se o painel está relacionado na lista de painéis gerados por runtime para o aplicativo.
virtual BOOL AllowShowOnPaneMenu() const;
Valor de retorno
TRUE se o painel for exibido na lista; caso contrário, FALSE. A implementação base sempre retorna TRUE.
Comentários
O aplicativo gerado pelo Assistente de Aplicativo contém uma opção de menu que lista os painéis que ele contém. Esse método determina se o painel é exibido na lista.
CPane::CalcAvailableSize
Calcula a diferença de tamanho entre um retângulo especificado e o retângulo da janela atual.
virtual CSize CalcAvailableSize(CRect rectRequired);
Parâmetros
rectRequired
[in] O retângulo necessário.
Valor de retorno
A diferença de largura e altura entre rectRequired e o retângulo da janela atual.
CPane::CalcInsideRect
Calcula o retângulo interno de um painel, incluindo as bordas e as garras.
void CalcInsideRect(
CRect& rect,
BOOL bHorz) const;
Parâmetros
rect
[out] Contém o tamanho e o deslocamento da área de cliente do painel.
bHorz
[in] TRUE se o painel estiver encaixado horizontalmente; caso contrário, FALSE.
Comentários
Esse método é chamado pela estrutura quando precisa recalcular o layout de um painel. O parâmetro rect é preenchido com o tamanho e o deslocamento da área de cliente do painel. Isso inclui suas bordas e garras.
CPane::CalcRecentDockedRect
Calcula o retângulo encaixado recentemente.
void CalcRecentDockedRect();
Comentários
Esse método atualiza CPane::m_recentDockInfo.
CPane::CalcSize
Calcula o tamanho do painel.
virtual CSize CalcSize(BOOL bVertDock);
Parâmetros
bVertDock
[in] TRUE se o painel estiver sendo encaixado verticalmente; FALSE, caso contrário.
Valor de retorno
A implementação padrão desse método retorna um tamanho de (0, 0).
Comentários
Classes derivadas devem substituir esse método.
CPane::CanBeDocked
Determina se o painel pode ser encaixado no painel base especificado.
virtual BOOL CanBeDocked(CBasePane* pDockBar) const;
Parâmetros
pDockBar
[in] Especifica o painel em que esse painel deve ser encaixado.
Valor de retorno
TRUE se esse painel puder ser encaixado no painel de encaixe especificado; caso contrário, FALSE.
Comentários
Esse método geralmente é chamado pela estrutura para determinar se um painel pode ser encaixado no painel de encaixe especificado. Para determinar se o painel pode ser encaixado, o método avalia o alinhamento de encaixe atualmente habilitado do painel.
Você habilita o encaixe nos vários lados da janela com moldura chamando CBasePane::EnableDocking.
CPane::CanBeTabbedDocument
Determina se o painel pode ser convertido em um documento com guias.
virtual BOOL CanBeTabbedDocument() const;
Valor de retorno
TRUE se o painel puder ser convertido em um documento com guias; caso contrário, FALSE.
Comentários
Substitua esse método em uma classe derivada e retorne FALSE se você quiser impedir que um painel seja convertido em um documento com guias. Um documento com guias não será listado no menu Posição da Janela.
CPane::ConvertToTabbedDocument
Converte um painel encaixável em um documento com guias.
virtual void ConvertToTabbedDocument(BOOL bActiveTabOnly = TRUE);
Parâmetros
bActiveTabOnly
[in] Não é usado em CPane::ConvertToTabbedDocument
.
Comentários
Somente painéis encaixáveis podem ser convertidos em documentos com guias. Para saber mais, confira CDockablePane::ConvertToTabbedDocument.
CPane::CopyState
Copia o estado de um painel.
virtual void CopyState(CPane* pOrgBar);
Parâmetros
pOrgBar
[in] Um ponteiro para um painel.
Comentários
Esse método copia o estado de pOrgBar para o painel atual.
CPane::Create
Cria uma barra de controle e a anexa ao 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 o nome da classe de janela.
dwStyle
[in] Especifica os atributos de estilo de janela. Para obter mais informações, consulte Estilos de Janela.
rect
[in] Especifica o tamanho e a posição iniciais da janela pParentWnd, nas coordenadas de cliente.
pParentWnd
[in, out] Especifica a janela pai desse painel.
Nid
[in] Especifica a ID do painel.
dwControlBarStyle
[in] Especifica o estilo do painel. Para saber mais, confira CBasePane::CreateEx.
pContext
[in, out] Especifica o contexto de criação do painel.
Valor de retorno
TRUE se o painel foi criado com êxito; caso contrário, FALSE.
Comentários
Esse método cria um painel do Windows e o anexa ao objeto CPane
.
Se você não tiver inicializado explicitamente CPane::m_recentDockInfo antes de chamar Create
, o parâmetro rect será usado como o retângulo ao flutuar ou encaixar o painel.
CPane::CreateDefaultMiniframe
Cria uma janela com minimoldura para um painel flutuante.
virtual CPaneFrameWnd* CreateDefaultMiniframe(CRect rectInitial);
Parâmetros
rectInitial
[in] Especifica o tamanho e a posição iniciais, em coordenadas de tela, da janela com minimoldura a ser criada.
Valor de retorno
A janela com minimoldura recém-criada.
Comentários
Esse método é chamado pela estrutura para criar uma janela com minimoldura quando um painel é flutuado. A janela com minimoldura pode ser do tipo CPaneFrameWnd ou do tipo CMultiPaneFrameWnd. Uma janela com várias minimolduras será criada se o painel tiver o estilo AFX_CBRS_FLOAT_MULTI.
As informações de classe de runtime para a janela com minimoldura são armazenadas no membro CPane::m_pMiniFrameRTC
. Você pode usar uma classe derivada para definir esse membro se decidir criar janelas com minimoldura personalizadas.
CPane::CreateEx
Cria uma barra de controle e a anexa ao 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 os atributos de estilo de janela. Para saber mais, confira Estilos de janelas estendidas.
lpszClassName
[in] Especifica o nome da classe de janela.
dwStyle
[in] Especifica atributos de estilo de janela. Para obter mais informações, consulte Estilos de Janela.
rect
[in] Especifica o tamanho e a posição iniciais da janela pParentWnd, nas coordenadas de cliente.
pParentWnd
[in, out] Especifica a janela pai desse painel.
Nid
[in] Especifica a ID do painel.
dwControlBarStyle
[in] Especifica o estilo do painel. Para saber mais, confira CBasePane::CreateEx.
pContext
[in, out] Especifica o contexto de criação para o painel.
Valor de retorno
TRUE se o painel foi criado com êxito; caso contrário, FALSE.
Comentários
Esse método cria um painel do Windows e o anexa ao objeto CPane
.
Se você não tiver inicializado explicitamente CPane::m_recentDockInfo antes de chamar CreateEx
, o parâmetro rect será usado como o retângulo ao flutuar ou encaixar o painel.
CPane::DockByMouse
Encaixa um painel usando o mouse.
virtual BOOL DockByMouse(CBasePane* pDockBar);
Parâmetros
pDockBar
[in] Especifica o painel base ao qual encaixar esse painel.
Valor de retorno
TRUE se o painel foi encaixado com êxito; caso contrário, FALSE.
CPane::DockPane
Encaixa o painel flutuante em um painel base.
virtual BOOL DockPane(
CBasePane* pDockBar,
LPCRECT lpRect,
AFX_DOCK_METHOD dockMethod);
Parâmetros
pDockBar
[in, out] Especifica o painel base ao qual encaixar esse painel.
lpRect
[in] Especifica o retângulo no painel base em que esse painel deve ser encaixado.
dockMethod
[in] Especifica o método de encaixe a ser usado. As opções disponíveis são as seguintes:
Opção | Descrição |
---|---|
DM_UNKNOWN | A estrutura usa essa opção quando o método de encaixe é desconhecido. O painel não armazena sua posição flutuante mais recente. Você também pode usar essa opção para encaixar programaticamente um painel quando não precisar armazenar a posição flutuante recente. |
DM_MOUSE | Usado internamente. |
DM_DBL_CLICK | Essa opção é usada quando a garra é clicada duas vezes. O painel é reposicionado em sua posição de encaixe mais recente. Se o painel estiver desencaixado clicando duas vezes, ele será reposicionado em sua posição flutuante mais recente. |
DM_SHOW | Essa opção pode ser usada para encaixar programaticamente o painel. O painel armazena sua posição flutuante mais recente. |
DM_RECT | O painel é encaixado na região especificada por lpRect. |
DM_STANDARD | Quando você usa essa opção, a estrutura desenha o painel como um quadro de contorno enquanto ele está sendo movido. |
Valor de retorno
TRUE se o painel foi encaixado com êxito; caso contrário, FALSE.
Comentários
Esse método encaixa o painel no painel base especificado pelo parâmetro pDockBar. Primeiro, você deve habilitar o encaixe chamando CBasePane::EnableDocking.
CPane::DockPaneStandard
Encaixa um painel usando o encaixe de contorno (padrão).
virtual CPane* DockPaneStandard(BOOL& bWasDocked);
Parâmetros
bWasDocked
[in] TRUE se o painel foi encaixado com êxito; caso contrário, FALSE.
Valor de retorno
Este método sempre retorna o ponteiro this
.
Comentários
Esse método é usado apenas para painéis derivados da Classe CDockablePane. Para obter mais informações, consulte CDockablePane::D ockPaneStandard.
CPane::DockToFrameWindow
Encaixa um painel encaixável em um quadro.
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] O lado do quadro pai ao qual você deseja encaixar o painel.
lpRect
[in] O tamanho especificado.
dwDockFlags
[in] Ignorado.
pRelativeBar
[in] Ignorado.
nRelativeIndex
[in] Ignorado.
bOuterEdge
[in] Se for TRUE e houver outros painéis encaixáveis no lado especificado por dwAlignment, o painel será encaixado fora dos outros painéis, mais perto da borda do quadro pai. Se for FALSE, o painel será encaixado mais perto do centro da área de cliente.
Valor de retorno
FALSE, se um divisor de painel (Classe CPaneDivider) não puder ser criado; caso contrário, TRUE.
Comentários
CPane::DoesAllowSiblingBars
Indica se você pode encaixar outro painel na mesma linha em que o painel atual está encaixado.
virtual BOOL DoesAllowSiblingBars() const;
Valor de retorno
TRUE se esse painel puder se encaixar em outro painel na mesma linha que ele próprio; caso contrário, FALSE.
Comentários
É possível habilitar ou desabilitar esse comportamento chamando CPane::SetExclusiveRowMode.
Por padrão, as barras de ferramentas têm o modo de linha exclusivo desabilitado e a barra de menus tem o modo de linha exclusivo habilitado.
CPane::FloatPane
Faz o painel flutuar.
virtual BOOL FloatPane(
CRect rectFloat,
AFX_DOCK_METHOD dockMethod = DM_UNKNOWN,
bool bShow = true);
Parâmetros
rectFloat
[in] Especifica o local, em coordenadas de tela, para posicionar o painel quando ele é flutuado.
dockMethod
[in] Especifica o método de encaixe a ser usado quando o painel é flutuado. Para ver uma lista de valores possíveis, confira CPane::DockPane.
bShow
[in] TRUE para mostrar o painel quando flutuado; caso contrário, FALSE.
Valor de retorno
TRUE se o painel foi flutuado com êxito ou se o painel não pode ser flutuado porque CBasePane::CanFloat retorna FALSE; caso contrário, FALSE.
Comentários
Chame esse método para flutuar o painel na posição especificada pelo parâmetro rectFloat. Esse método cria automaticamente uma janela com minimoldura pai para o painel.
CPane::GetAvailableExpandSize
Retorna a quantidade, em pixels, que o painel pode expandir.
virtual int GetAvailableExpandSize() const;
Valor de retorno
Se o painel estiver encaixado horizontalmente, o valor retornado será a largura disponível; caso contrário, o valor retornado será a altura disponível.
Comentários
CPane::GetAvailableStretchSize
Retorna a quantidade, em pixels, que o painel pode reduzir.
virtual int GetAvailableStretchSize() const;
Valor de retorno
A quantidade, em pixels, que o painel pode reduzir. Se o painel estiver encaixado horizontalmente, esse valor será a largura disponível; caso contrário, será a altura disponível.
Comentários
O tamanho de alongamento disponível é calculado subtraindo o tamanho mínimo permitido para o painel (CPane::GetMinSize) do tamanho atual (CWnd::GetWindowRect).
CPane::GetBorders
Retorna a largura das bordas do painel.
CRect GetBorders() const;
Valor de retorno
Um objeto CRect que contém a largura atual, em pixels, de cada lado do painel. Por exemplo, o valor do membro left
, do objeto CRect
, é a largura da borda esquerda.
Comentários
Para definir o tamanho das bordas, chame CPane::SetBorders.
CPane::GetClientHotSpot
Retorna o ponto de acesso para o painel.
CPoint GetClientHotSpot() const;
Valor de retorno
Comentários
O ponto de acesso é o ponto no painel que o usuário seleciona e mantém selecionado para mover o painel. Um ponto de acesso é usado para animação suave quando o painel é movido de uma posição encaixada.
CPane::GetDockSiteRow
Retorna a linha do dock (Classe CDockingPanesRow) na qual o painel está encaixado.
CDockingPanesRow* GetDockSiteRow() const;
Valor de retorno
Um CDockingPanesRow
* que aponta para a linha de encaixe na qual o painel está encaixado; ou NULL se o painel não estiver encaixado.
CPane::GetExclusiveRowMode
Determina se o painel está no modo de linha exclusivo.
virtual BOOL GetExclusiveRowMode() const;
Valor de retorno
TRUE se o painel estiver no modo de linha exclusivo; caso contrário, FALSE.
Comentários
Para obter mais informações sobre o modo de linha exclusivo, consulte CPane::SetExclusiveRowMode.
CPane::GetHotSpot
Retorna o ponto de acesso que é armazenado em um objeto CMFCDragFrameImpl
subjacente.
CPoint GetHotSpot() const;
Valor de retorno
Comentários
A classe CPane
contém um objeto CMFCDragFrameImpl
, m_dragFrameImpl
, que é responsável por desenhar o retângulo que aparece quando o usuário move um painel no modo de encaixe padrão. O ponto de acesso é usado para desenhar o retângulo em relação à posição atual do mouse à medida que o usuário move o painel.
CPane::GetMinSize
Recupera o tamanho mínimo permitido para o painel.
virtual void GetMinSize(CSize& size) const;
Parâmetros
size
[out] Um objeto CSize
que é preenchido com o tamanho mínimo permitido.
Comentários
CPane::GetPaneName
Recupera o título do painel.
virtual void GetPaneName(CString& strName) const;
Parâmetros
strName
[out] Um objeto CString
que é preenchido com o nome da legenda.
Comentários
O título do painel é exibido na área de legenda quando o painel está encaixado ou flutuando. Se o painel fizer parte de um grupo com guias, o título será exibido na área de guia. Se o painel estiver no modo de ocultamento automático, o título será exibido em um CMFCAutoHideButton
.
CPane::GetVirtualRect
Recupera o retângulo virtual do painel.
void GetVirtualRect(CRect& rectVirtual) const;
Parâmetros
rectVirtual
[out] Um objeto CRect
que é preenchido com o retângulo virtual.
Comentários
Quando um painel é movido, a estrutura armazena a posição original do painel em um retângulo virtual. A estrutura pode usar o retângulo virtual para restaurar a posição original do painel.
Não chame métodos relacionados a retângulos virtuais, a menos que você esteja movendo painéis programaticamente.
CPane::IsChangeState
À medida que o painel é movido, esse método analisa sua posição em relação a outros painéis, linhas de encaixe e janelas com minimoldura e, em seguida, retorna o valor de AFX_CS_STATUS apropriado.
virtual AFX_CS_STATUS IsChangeState(
int nOffset,
CBasePane** ppTargetBar) const;
Parâmetros
nOffset
[in] Especifica a sensibilidade de encaixe. Por exemplo, um painel movido dentro de nOffset pixels em uma linha do dock será encaixado.
ppTargetBar
[in] Quando o método retorna, ppTargetBar contém um ponteiro para o objeto ao qual o painel atual deve ser encaixado; ou NULL se nenhum encaixe deve ocorrer.
Valor de retorno
Um dos seguintes valores de AFX_CS_STATUS:
Valor | Descrição |
---|---|
CS_NOTHING | O painel não está perto de um local de encaixe. A estrutura não encaixa o painel. |
CS_DOCK_IMMEDIATELY | O painel está sobre um local de encaixe e o estilo DT_IMMEDIATE está habilitado. A estrutura encaixa o painel imediatamente. |
CS_DELAY_DOCK | O painel está sobre um local de encaixe que é outro painel de encaixe ou é uma borda do quadro principal. A estrutura encaixa o painel quando o usuário libera a movimentação. |
CS_DELAY_DOCK_TO_TAB | O painel está sobre um local de encaixe que faz com que o painel seja encaixado em uma janela com guias. Isso ocorre quando o painel está localizado sobre a legenda de outro painel de encaixe ou sobre a área de guia de um painel com guias. A estrutura encaixa o painel quando o usuário libera a movimentação. |
CPane::IsDragMode
Especifica se o painel está sendo movido.
virtual BOOL IsDragMode() const;
Valor de retorno
TRUE se o painel estiver sendo movido; caso contrário, FALSE.
Comentários
CPane::IsInFloatingMultiPaneFrameWnd
Especifica se o painel está em uma janela de quadro de vários painéis (Classe CMultiPaneFrameWnd).
virtual BOOL IsInFloatingMultiPaneFrameWnd() const;
Valor de retorno
TRUE se o painel estiver em uma janela de quadro de vários painéis; caso contrário, FALSE.
Comentários
Somente painéis encaixáveis podem flutuar em uma janela de quadro de vários painéis. Portanto, CPane::IsInFloatingMultiPaneFrameWnd
sempre retorna FALSE.
CPane::IsLeftOf
Determina se o painel está à esquerda (ou acima) do retângulo especificado.
bool IsLeftOf(
CRect rect,
bool bWindowRect = true) const;
Parâmetros
rect
[in] Um objeto CRect
usado para comparação.
bWindowRect
[in] Se TRUE, será assumido que rect contém coordenadas de tela; se FALSE, será assumido que rect contém coordenadas de cliente.
Valor de retorno
Comentários
Se o painel for encaixado horizontalmente, esse método verificará se o local está à esquerda de rect. Caso contrário, esse método verifica se o local está acima de rect.
CPane::IsResizable
Especifica se o painel é redimensionável.
virtual BOOL IsResizable() const;
Valor de retorno
TRUE se o painel for redimensionável; caso contrário, FALSE.
Comentários
Objetos CPane
base não são redimensionáveis.
O gerenciador de encaixe usa o sinalizador redimensionável para determinar o layout do painel. Painéis não redimensionáveis estão sempre localizados nas bordas externas do quadro pai.
Painéis não redimensionáveis não podem residir em contêineres de encaixe.
CPane::IsTabbed
Determina se o painel foi inserido no controle guia de uma janela com guias.
virtual BOOL IsTabbed() const;
Valor de retorno
TRUE se o painel estiver com guias; caso contrário, FALSE.
Comentários
O estado com guias é tratado separadamente dos estados flutuando, encaixado e de ocultação automática.
CPane::LoadState
Carrega o estado do painel do Registro.
virtual BOOL LoadState(
LPCTSTR lpszProfileName = NULL,
int nIndex = -1,
UINT uiID = (UINT) -1);
Parâmetros
lpszProfileName
[in] Nome do perfil.
nIndex
[in] Índice do perfil.
uiID
[in] ID do painel.
Valor de retorno
TRUE se o estado do painel tiver sido carregado com êxito; caso contrário, FALSE.
Comentários
A estrutura chama esse método para carregar o estado do painel com base no registro. Substitua-o em uma classe derivada para carregar informações adicionais que são salvas por CPane::SaveState.
Ao substituir esse método, chame também o método base e retorne FALSE se o método base retornar FALSE.
CPane::m_bHandleMinSize
Habilita a manipulação consistente de tamanhos mínimos do painel.
AFX_IMPORT_DATA static BOOL m_bHandleMinSize;
Comentários
Se um ou mais painéis de encaixe em seu aplicativo substituírem GetMinSize
, ou se o aplicativo chamar SetMinSize
, convém definir esse membro estático como TRUE, a fim de habilitar a estrutura para lidar de maneira consistente com o dimensionamento dos painéis.
Se esse valor for definido como TRUE, todos os painéis cujo tamanho deveria ser reduzido abaixo do tamanho mínimo serão recortados, não estendidos. Como a estrutura usa regiões de janela para fins de dimensionamento de painel, não altere o tamanho da região da janela para painéis de encaixe se esse valor estiver definido como TRUE.
CPane::m_recentDockInfo
Contém informações recentes de encaixe.
CRecentDockSiteInfo m_recentDockInfo;
Comentários
A estrutura armazena as informações de estado de encaixe mais recentes para o painel neste membro.
CPane::MoveByAlignment
Move o painel e o retângulo virtual pela quantidade especificada.
BOOL MoveByAlignment(
DWORD dwAlignment,
int nOffset);
Parâmetros
dwAlignment
[in] Especifica o alinhamento do painel.
nOffset
[in] A quantidade, em pixels, pela qual mover o painel e o retângulo virtual.
Valor de retorno
Comentários
dwAlignment pode ser qualquer um dos seguintes valores:
Valor | Descrição |
---|---|
CBRS_ALIGN_TOP | Permite que o painel seja encaixado na parte superior da área de cliente de uma janela com moldura. |
CBRS_ALIGN_BOTTOM | Permite que o painel seja encaixado na parte inferior da área de cliente de uma janela com moldura. |
CBRS_ALIGN_LEFT | Permite que o painel seja encaixado no lado esquerdo da área de cliente de uma janela com moldura. |
CBRS_ALIGN_RIGHT | Permite que o painel seja encaixado no lado direito da área de cliente de uma janela com moldura. |
CBRS_ALIGN_ANY | Permite que o painel seja encaixado em qualquer lado da área de cliente de uma janela com moldura. |
Se dwAlignment contiver o sinalizador CBRS_ALIGN_LEFT ou CBRS_ALIGN_RIGHT, o painel e o retângulo virtual serão movidos horizontalmente; se dwAlignment contiver o sinalizador CBRS_ALIGN_TOP ou CBRS_ALIGN_BOTTOM, o painel e o retângulo virtual serão movidos verticalmente.
CPane::MovePane
Move o painel para o retângulo especificado.
virtual CSize MovePane(
CRect rectNew,
BOOL bForceMove,
HDWP& hdwp);
Parâmetros
rectNew
[in] Especifica o novo retângulo para o painel.
bForceMove
[in] Se TRUE, esse método ignorará o tamanho mínimo permitido do painel (CPane::GetMinSize); caso contrário, o painel será ajustado, se necessário, para garantir que ele seja pelo menos o tamanho mínimo permitido.
hdwp
[in] Não é usado.
Valor de retorno
Um objeto CSize
que contém as diferenças de largura e altura entre os retângulos novos e antigos (retângulo antigo − rectNew).
Comentários
Esse método é usado apenas para painéis encaixáveis.
CPane::OnAfterChangeParent
Chamado pela estrutura quando o pai de um painel foi alterado.
virtual void OnAfterChangeParent(CWnd* pWndOldParent);
Parâmetros
pWndOldParent
[in, out] A janela pai anterior do painel.
Comentários
Esse método é chamado pela estrutura quando o pai de um painel foi alterado devido a uma operação de encaixe ou flutuação.
CPane::OnAfterDock
Chamado pela estrutura quando um painel foi encaixado.
virtual void OnAfterDock(
CBasePane* pBar,
LPCRECT lpRect,
AFX_DOCK_METHOD dockMethod);
Parâmetros
pBar
[in] Esse parâmetro não é usado.
lpRect
[in] Esse parâmetro não é usado.
dockMethod
[in] Esse parâmetro não é usado.
CPane::OnAfterFloat
Chamado pela estrutura após um painel flutuar.
virtual void OnAfterFloat();
Comentários
Você poderá substituir esse método em uma classe derivada se quiser executar qualquer processamento após o painel flutuar.
CPane::OnBeforeChangeParent
Chamado pela estrutura quando o pai do painel está prestes a ser alterado.
virtual void OnBeforeChangeParent(
CWnd* pWndNewParent,
BOOL bDelay = FALSE);
Parâmetros
pWndNewParent
[in, out] Especifica a nova janela pai.
bDelay
[in] TRUE para atrasar o ajuste de layout de encaixe global; caso contrário, FALSE.
Comentários
Esse método é chamado pela estrutura quando o pai do painel está prestes a ser alterado porque o painel está sendo encaixado ou flutuado.
Por padrão, o painel não é registrado com o painel de encaixe chamando CDockSite::RemovePane
.
CPane::OnBeforeDock
Chamado pela estrutura quando um painel está prestes a encaixar.
virtual BOOL OnBeforeDock(
CBasePane** ppDockBar,
LPCRECT lpRect,
AFX_DOCK_METHOD dockMethod);
Parâmetros
ppDockBar
[in, out] Especifica o painel ao qual este painel está se encaixando.
lpRect
[in] Especifica o retângulo de encaixe.
dockMethod
[in] Especifica o método de encaixe.
Valor de retorno
TRUE se o painel puder ser encaixado. Se a função retornar FALSE, a operação de encaixe será anulada.
Comentários
Esse método é chamado pela estrutura quando um painel está prestes a ser encaixado. Você poderá substituir esse método em uma classe derivada se quiser executar qualquer processamento antes que um painel seja finalmente encaixado.
CPane::OnBeforeFloat
Chamado pela estrutura quando um painel está prestes a flutuar.
virtual BOOL OnBeforeFloat(
CRect& rectFloat,
AFX_DOCK_METHOD dockMethod);
Parâmetros
rectFloat
[in] Especifica a posição e o tamanho do painel quando ele está em um estado flutuante.
dockMethod
[in] Especifica o método de encaixe do painel.
Valor de retorno
TRUE se o painel puder ser flutuado; caso contrário, FALSE.
Comentários
Esse método é chamado pela estrutura quando um painel está prestes a flutuar. Você poderá substituir esse método em uma classe derivada se quiser executar qualquer processamento antes que o painel finalmente flutue.
CPane::OnPressCloseButton
Chamado pela estrutura quando o usuário pressiona o botão de fechar na legenda do painel.
virtual void OnPressCloseButton();
Comentários
Esse método é chamado pela estrutura quando um usuário pressiona o botão Fechar na legenda do painel. Para receber notificações sobre o evento Fechar, você pode substituir esse método em uma classe derivada.
CPane::OnShowControlBarMenu
Chamado pela estrutura quando um menu de painel especial está prestes a ser exibido.
virtual BOOL OnShowControlBarMenu(CPoint point);
Parâmetros
point
[in] Especifica o local do menu.
Valor de retorno
TRUE se o menu puder ser exibido; caso contrário, FALSE.
Comentários
O menu contém vários itens que permitem especificar o comportamento do painel, ou seja: Flutuante, Encaixe, Ocultar Automaticamente e Ocultar. Você pode habilitar esse menu para todos os painéis chamando CDockingManager::EnableDockSiteMenu.
CPane::RecalcLayout
Recalcula informações de layout do painel.
virtual void RecalcLayout();
Comentários
Se o painel estiver encaixado, esse método atualizará o retângulo virtual para o painel definindo seu tamanho como o tamanho atual do painel.
Se o painel estiver flutuando, esse método notificará a minimoldura pai para ajustar o tamanho do painel ao tamanho da minimoldura. A estrutura garante que a minimoldura seja pelo menos o tamanho mínimo permitido para o painel (CPane::GetMinSize) e redimensiona a minimoldura, se necessário.
CPane::SaveState
Salva o estado do painel no registro.
virtual BOOL SaveState(
LPCTSTR lpszProfileName = NULL,
int nIndex = -1,
UINT uiID = (UINT) -1);
Parâmetros
lpszProfileName
[in] Nome do perfil.
nIndex
[in] Índice do perfil.
uiID
[in] ID do painel.
Valor de retorno
TRUE se o estado foi salvo com êxito; caso contrário, FALSE.
Comentários
A estrutura chama esse método quando salva o estado do painel no registro. Substitua SaveState
em uma classe derivada para armazenar informações adicionais.
Ao substituir esse método, chame também o método base e retorne FALSE se o método base retornar FALSE.
CPane::SetActiveInGroup
Sinaliza um painel como ativo.
virtual void SetActiveInGroup(BOOL bActive);
Parâmetros
bActive
[in] Um BOOL que especifica se o painel está sinalizado como ativo.
Comentários
Quando um painel encaixável for mostrado ou um botão de ocultamento automático for escolhido, o painel de ocultamento automático correspondente será marcado como ativo.
A aparência de um botão de ocultamento automático associado ao painel baseia-se em dois fatores. Se o painel estiver ativo e static BOOL CMFCAutoHideButton::m_bOverlappingTabs
for TRUE, a estrutura exibirá o botão de ocultamento automático como um ícone e um rótulo. Para um painel inativo, a estrutura exibirá apenas o ícone de ocultamento automático.
Se CMFCAutoHideButton::m_bOverlappingTabs
for FALSE ou se o painel não estiver localizado em um grupo, a estrutura exibirá o botão de ocultamento automático associado como um ícone e um rótulo.
CPane::SetBorders
Define os valores de borda do painel.
void SetBorders(
int cxLeft = 0,
int cyTop = 0,
int cxRight = 0,
int cyBottom = 0);
void SetBorders(LPCRECT lpRect);
Parâmetros
cxLeft
[in] Especifica a largura, em pixels, da borda esquerda do painel.
cyTop
[in] Especifica a largura, em pixels, da borda superior do painel.
cxRight
[in] Especifica a largura, em pixels, da borda direita do painel.
cyBottom
[in] Especifica a largura, em pixels, da borda inferior do painel.
lpRect
Um objeto CRect que contém a largura, em pixels, de cada borda do painel.
Comentários
Chame essa função para definir as dimensões das bordas do painel.
CPane::SetClientHotSpot
Define o ponto de acesso para o painel.
void SetClientHotSpot(const CPoint& ptNew);
Parâmetros
ptNew
[in] Um objeto CPoint
que especifica o novo ponto de acesso.
Comentários
O ponto de acesso é o ponto no painel que o usuário seleciona e mantém selecionado para mover o painel. Um ponto de acesso é usado para animação suave quando o painel é arrastado de uma posição encaixada.
CPane::SetDockState
Restaura as informações de estado de encaixe do painel.
virtual void SetDockState(CDockingManager* pDockManager);
Parâmetros
pDockManager
[in] Ponteiro para o gerenciador de encaixe para a janela com moldura principal.
Comentários
Esse método é chamado pela estrutura para restaurar informações recentes de estado de encaixe do painel. Um painel armazena informações recentes de estado de encaixe em CPane::m_recentDockInfo. Para saber mais, confira classe CRecentDockSiteInfo.
Você também pode chamar esse método para definir o estado de encaixe ao carregar informações do painel de uma origem externa.
CPane::SetExclusiveRowMode
Habilita ou desabilita o modo de linha exclusivo.
virtual void SetExclusiveRowMode(BOOL bExclusive = TRUE);
Parâmetros
bExclusive
[in] TRUE para habilitar o modo de linha exclusivo; caso contrário, FALSE.
Comentários
Chame esse método para habilitar ou desabilitar o modo de linha exclusivo. Quando um painel está no modo de linha exclusivo, ele não pode compartilhar a mesma linha com qualquer outra barra de ferramentas.
Por padrão, as barras de ferramentas têm o modo de linha exclusivo desabilitado e a barra de menus tem o modo de linha exclusivo habilitado.
CPane::SetMinSize
Define o tamanho mínimo permitido para o painel.
void SetMinSize(const CSize& size);
Parâmetros
size
[in] Um objeto CSize
que contém o tamanho mínimo permitido para o painel.
Comentários
CPane::SetVirtualRect
Define o retângulo virtual do painel.
void SetVirtualRect(
const CRect& rect,
BOOL bMapToParent = TRUE);
Parâmetros
rect
[in] Um objeto CRect
que especifica o retângulo virtual a ser definido.
bMapToParent
[in] Especifique TRUE se rect contiver pontos relativos à janela pai.
Comentários
Um retângulo virtual armazena a posição original de um painel quando ele é movido. A estrutura pode usar o retângulo virtual para restaurar a posição original do painel.
Não chame métodos relacionados a retângulos virtuais, a menos que você esteja movendo painéis programaticamente.
CPane::SetMiniFrameRTC
Define as informações de classe de runtime para a janela com minimoldura padrão.
void SetMiniFrameRTC(CRuntimeClass* pClass);
Parâmetros
pClass
[in, out] Especifica as informações de classe de runtime para a janela com minimoldura.
Comentários
Quando um painel é flutuado, ele é colocado em uma janela CPaneFrameWnd (minimoldura). Você pode fornecer uma classe derivada personalizada de CPaneFrameWnd
que será usada quando CPane::CreateDefaultMiniframe for chamado.
CPane::StretchPaneDeferWndPos
Alonga o painel no sentido vertical ou horizontal com base no estilo de encaixe.
virtual int StretchPaneDeferWndPos(
int nStretchSize,
HDWP& hdwp);
Parâmetros
nStretchSize
[in] A quantidade, em pixels, para alongar o painel. Use um valor negativo para reduzir o painel.
hdwp
[in] Não é usado.
Valor de retorno
A quantidade real, em pixels, de que o painel foi alongado.
Comentários
Se necessário, esse método modifica nStretchSize para garantir que o painel não exceda os limites de tamanho. Esses limites são obtidos chamando CPane::GetAvailableStretchSize e CPane::GetAvailableExpandSize.
CPane::ToggleAutoHide
Alterna o modo de ocultação automática.
virtual void ToggleAutoHide();
Comentários
Chame esse método para alternar o modo de ocultamento automático. Um painel deve ser encaixado em uma janela de quadro principal para alternar para o modo de ocultamento automático.
CPane::UndockPane
Remove o painel do local de encaixe, do controle deslizante padrão ou da janela com minimoldura em que ele está encaixado.
virtual void UndockPane(BOOL bDelay = FALSE);
Parâmetros
bDelay
[in] Se FALSE, a estrutura chamará CBasePane::AdjustDockingLayout para ajustar o layout de encaixe.
Comentários
Use esse método para desencaixar programaticamente um painel.
CPane::UpdateVirtualRect
Atualiza o retângulo virtual.
void UpdateVirtualRect();
void UpdateVirtualRect(CPoint ptOffset);
void UpdateVirtualRect(CSize sizeNew);
Parâmetros
ptOffset
[in] Um objeto CPoint
que especifica um deslocamento pelo qual deslocar o painel.
sizeNew
[in] Um objeto CSize
que especifica um novo tamanho para o painel.
Comentários
A primeira sobrecarga define o retângulo virtual usando a posição e o tamanho atuais do painel.
A segunda sobrecarga desloca o retângulo virtual pela quantidade especificada por ptOffset.
A terceira sobrecarga define o retângulo virtual usando a posição atual do painel e o tamanho especificado por sizeNew.