Partilhar via


CMDIFrameWndEx classe

Estende a funcionalidade do , uma janela de quadro MDI (Interface de CMDIFrameWndMúltiplos Documentos) do Windows.

Sintaxe

class CMDIFrameWndEx : public CMDIFrameWnd

Membros

Métodos Públicos

Nome Descrição
CMDIFrameWndEx::ActiveItemRecalcLayout Recalcula o layout do item ativo.
CMDIFrameWndEx::AddDockSite Este método não é usado.
CMDIFrameWndEx::AddPane Registra um painel com o gerenciador de encaixe.
CMDIFrameWndEx::AdjustClientArea Reduz a área do cliente para permitir uma borda.
CMDIFrameWndEx::AdjustDockingLayout Recalcula o layout de todos os painéis encaixados.
CMDIFrameWndEx::AreMDITabs Determina se o recurso Guias MDI ou o recurso Grupos com guias MDI está habilitado.
CMDIFrameWndEx::CanConvertControlBarToMDIChild Chamado pela estrutura para determinar se a janela de quadro pode converter painéis de encaixe em documentos com guias.
CMDIFrameWndEx::ControlBarToTabbedDocument Converte o painel de encaixe especificado em um documento com guias.
CMDIFrameWndEx::CreateDocumentWindow Cria uma janela de documento filho.
CMDIFrameWndEx::CreateNewWindow Chamado pela estrutura para criar uma nova janela.
CMDIFrameWndEx::CreateObject Usado pela estrutura para criar uma instância dinâmica desse tipo de classe.
CMDIFrameWndEx::DockPane Encaixa o painel especificado na janela do quadro.
CMDIFrameWndEx::DockPaneLeftOf Encaixa um painel à esquerda de outro.
CMDIFrameWndEx::EnableAutoHidePanes Habilita o modo de ocultação automática para painéis quando eles estão encaixados em lados especificados da janela do quadro principal.
CMDIFrameWndEx::EnableDocking Permite o encaixe dos painéis que pertencem à janela de quadro MDI.
CMDIFrameWndEx::EnableFullScreenMainMenu Mostra ou oculta o menu principal no modo de ecrã inteiro.
CMDIFrameWndEx::EnableFullScreenMode Ativa o modo de tela cheia para a janela de quadros.
CMDIFrameWndEx::EnableLoadDockState Habilita ou desabilita o carregamento do estado de encaixe.
CMDIFrameWndEx::EnableMDITabbedGroups Habilita ou desabilita o recurso Grupos com guias MDI.
CMDIFrameWndEx::EnableMDITabs Habilita ou desabilita o recurso MDI Tabs. Quando ativada, a janela de quadro exibe uma guia para cada janela filho MDI.
CMDIFrameWndEx::EnableMDITabsLastActiveActivation Especifica se a última guia ativa deve ser ativada quando o usuário fecha a guia atual.
CMDIFrameWndEx::EnablePaneMenu Habilita ou desabilita a criação e o gerenciamento automáticos do menu do painel pop-up, que exibe uma lista de painéis de aplicativos.
CMDIFrameWndEx::EnableWindowsDialog Insere um item de menu cujo ID de comando chama uma CMFCWindowsManagerDialog caixa de diálogo.
CMDIFrameWndEx::GetActivePopup Retorna um ponteiro para o menu pop-up exibido no momento.
CMDIFrameWndEx::GetPane Retorna um ponteiro para o painel que tem a ID de controle especificada.
CMDIFrameWndEx::GetDefaultResId Retorna a ID dos recursos compartilhados da janela de quadro MDI.
CMDIFrameWndEx::GetMDITabGroups Retorna uma lista de janelas com guias MDI.
CMDIFrameWndEx::GetMDITabs Retorna uma referência à janela com guias sublinhada.
CMDIFrameWndEx::GetMDITabsContextMenuAllowedItems Retorna uma combinação de sinalizadores que determina quais itens de menu de contexto são válidos quando o recurso Grupos com guias MDI está habilitado.
CMDIFrameWndEx::GetMenuBar Retorna um ponteiro para um objeto da barra de menus anexado à janela do quadro.
CMDIFrameWndEx::GetRibbonBar Recupera o controle da barra da faixa de opções do quadro.
CMDIFrameWndEx::GetTearOffBars Retorna uma lista de objetos derivados que CPaneestão em um estado destacável.
CMDIFrameWndEx::GetThisClass Chamado pela estrutura para obter um ponteiro para o CRuntimeClass objeto que está associado a esse tipo de classe.
CMDIFrameWndEx::GetToolbarButtonToolTipText Chamado pela estrutura quando o aplicativo exibe a dica de ferramenta para um botão da barra de ferramentas.
CMDIFrameWndEx::InsertPane Registra o painel especificado com o gerenciador de encaixe.
CMDIFrameWndEx::IsFullScreen Determina se a janela do quadro está no modo de tela cheia.
CMDIFrameWndEx::IsMDITabbedGroup Determina se o recurso Grupos com guias MDI está habilitado.
CMDIFrameWndEx::IsMemberOfMDITabGroup Determina se a janela com guias especificada está na lista de janelas que estão em Grupos com guias MDI.
CMDIFrameWndEx::IsMenuBarAvailable Determina se a janela do quadro tem uma barra de menus.
CMDIFrameWndEx::IsPointNearDockSite Determina se um ponto especificado está perto do local da doca.
CMDIFrameWndEx::IsPrintPreview Determina se a janela do quadro está no modo de visualização de impressão.
CMDIFrameWndEx::LoadFrame Cria uma janela de quadro a partir de informações de recursos. (Substitui CMDIFrameWnd::LoadFrame.)
CMDIFrameWndEx::LoadMDIState Carrega o layout especificado de Grupos com guias MDI e a lista de documentos abertos anteriormente.
CMDIFrameWndEx::MDITabMoveToNextGroup Move a guia ativa da janela com guias atualmente ativa para o grupo com guias anterior ou seguinte.
CMDIFrameWndEx::MDITabNewGroup Cria um novo grupo com guias que tem uma única janela.
CMDIFrameWndEx::NegotiateBorderSpace Negocia o espaço de borda em uma janela de quadro durante a ativação OLE in-loco.
CMDIFrameWndEx::OnCloseDockingPane Chamado pela estrutura quando o usuário clica no botão Fechar em um painel encaixável.
CMDIFrameWndEx::OnCloseMiniFrame Chamado pela estrutura quando o usuário clica no botão Fechar em uma janela flutuante de mini quadros.
CMDIFrameWndEx::OnClosePopupMenu Chamado pela estrutura quando um menu pop-up ativo processa uma WM_DESTROY mensagem.
CMDIFrameWndEx::OnCmdMsg Chamado pela estrutura para rotear e despachar mensagens de comando e atualizar objetos de interface do usuário de comando.
CMDIFrameWndEx::OnDrawMenuImage Chamado pela estrutura quando a imagem associada a um item de menu é desenhada.
CMDIFrameWndEx::OnDrawMenuLogo Chamado pela estrutura quando um CMFCPopupMenu processa uma WM_PAINT mensagem.
CMDIFrameWndEx::OnEraseMDIClientBackground Chamado pela estrutura quando a janela de quadro MDI processa uma WM_ERASEBKGND mensagem.
CMDIFrameWndEx::OnMenuButtonToolHitTest Chamado pela estrutura quando um CMFCToolBarButton objeto processa uma WM_NCHITTEST mensagem.
CMDIFrameWndEx::OnMoveMiniFrame Chamado pela estrutura para mover uma janela de miniquadro.
CMDIFrameWndEx::OnSetPreviewMode Define o modo de visualização de impressão da janela do quadro principal do aplicativo. (Substitui CFrameWnd::OnSetPreviewMode.)
CMDIFrameWndEx::OnShowCustomizePane Chamado pela estrutura quando um painel de Personalização Rápida é ativado.
CMDIFrameWndEx::OnShowMDITabContextMenu Chamado pela estrutura quando um menu de contexto deve ser exibido em uma das guias. (Válido apenas para grupos com guias MDI.)
CMDIFrameWndEx::OnShowPanes Chamado pela estrutura para mostrar ou ocultar painéis.
CMDIFrameWndEx::OnShowPopupMenu Chamado pela estrutura quando um menu pop-up é ativado.
CMDIFrameWndEx::OnSizeMDIClient Chamado pela estrutura quando o tamanho da janela MDI do cliente está mudando.
CMDIFrameWndEx::OnTearOffMenu Chamado pela estrutura quando um menu que tem uma barra destacável é ativado.
CMDIFrameWndEx::OnUpdateFrameMenu Chamado pela estrutura para atualizar o menu de quadros. (Substitui CMDIFrameWnd::OnUpdateFrameMenu.)
CMDIFrameWndEx::PaneFromPoint Retorna o painel de encaixe que contém o ponto especificado.
CMDIFrameWndEx::PreTranslateMessage Usado pela classe CWinApp para traduzir mensagens de janela antes de serem enviadas para as TranslateMessage funções e DispatchMessage Windows. (Substitui CMDIFrameWnd::PreTranslateMessage.)
CMDIFrameWndEx::RecalcLayout Chamado pela estrutura para recalcular o layout da janela do quadro. (Substitui CFrameWnd::RecalcLayout.)
CMDIFrameWndEx::RemovePaneFromDockManager Cancela o registro de um painel e o remove do gerenciador de encaixe.
CMDIFrameWndEx::SaveMDIState Salva o layout atual dos Grupos com guias MDI e a lista de documentos abertos anteriormente.
CMDIFrameWndEx::SetPrintPreviewFrame Define a janela do quadro de visualização de impressão.
CMDIFrameWndEx::SetupToolbarMenu Modifica um objeto da barra de ferramentas pesquisando itens fictícios e substituindo-os pelos itens especificados definidos pelo usuário.
CMDIFrameWndEx::ShowFullScreen Alterna o quadro principal do modo regular para o modo de tela cheia.
CMDIFrameWndEx::ShowPane Mostra ou oculta o painel especificado.
CMDIFrameWndEx::ShowWindowsDialog Cria uma CMFCWindowsManagerDialog caixa e abre-a.
CMDIFrameWndEx::TabbedDocumentToControlBar Converte o documento com guias especificado em um painel de encaixe.
CMDIFrameWndEx::UpdateCaption Chamado pela estrutura para atualizar a legenda do quadro da janela.
CMDIFrameWndEx::UpdateMDITabbedBarsIcons Define o ícone para cada painel com guias MDI.
CMDIFrameWndEx::WinHelp Chamado pela estrutura para iniciar o aplicativo WinHelp ou ajuda de contexto. (Substitui CWnd::WinHelp.)

Membros de dados

Nome Descrição
CMDIFrameWndEx::m_bCanConvertControlBarToMDIChild Determina se os painéis de encaixe podem ser convertidos em janelas filhas MDI.
CMDIFrameWndEx::m_bDisableSetRedraw Habilita ou desabilita a otimização de redesenho para janelas filhas MDI.

Observações

Para aproveitar os recursos de personalização estendidos em seu aplicativo MDI, derive a classe de janela de quadro MDI do aplicativo em vez CMDIFrameWndExde CMDIFrameWnd .

Exemplo

O exemplo a seguir deriva uma classe de CMDIFrameWndEx. Este trecho de código vem do DrawClient Sample: MFC Ribbon-Based OLE Object Drawing Application.

class CMainFrame : public CMDIFrameWndEx
{
   DECLARE_DYNAMIC(CMainFrame)
public:
   struct XStyle
   {
      COLORREF clrFill;
      COLORREF clrLine;
   };

public:
   CMainFrame();

   // Attributes
public:
   CMFCRibbonBar *GetRibbonBar() { return &m_wndRibbonBar; }

   // Operations
public:
   void UpdateUI(CDrawView *pCurrView);
   void UpdateContextTab(CDrawView *pCurrView);
   void UpdateContextTabFromObject(CDrawObjList &list);

   COLORREF GetColorFromColorButton(int nButtonID);
   int GetWeightFromLineWeight(int nButtonID);
   BOOL GetStyleFromStyles(XStyle &style);

   void SetRibbonContextCategory(UINT uiCategoryID);
   void ActivateRibbonContextCategory(UINT uiCategoryID);

   // Implementation
public:
   virtual ~CMainFrame();
#ifdef _DEBUG
   virtual void AssertValid() const;
   virtual void Dump(CDumpContext &dc) const;
#endif

protected:
   // control bar embedded members
   CMFCRibbonStatusBar m_wndStatusBar;
   CMFCRibbonBar m_wndRibbonBar;

   CMFCRibbonApplicationButton m_MainButton;

   // panel images
   CMFCToolBarImages m_PanelImages;

   // Document colors for demo:
   CList<COLORREF, COLORREF> m_lstMainColors;
   CList<COLORREF, COLORREF> m_lstAdditionalColors;
   CList<COLORREF, COLORREF> m_lstStandardColors;

   // Generated message map functions
protected:
   //{{AFX_MSG(CMainFrame)
   afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
   afx_msg void OnAppLook(UINT id);
   afx_msg void OnUpdateAppLook(CCmdUI *pCmdUI);
   afx_msg void OnWindowManager();
   afx_msg void OnMdiMoveToNextGroup();
   afx_msg void OnMdiMoveToPrevGroup();
   afx_msg void OnMdiNewHorzTabGroup();
   afx_msg void OnMdiNewVertGroup();
   afx_msg void OnMdiCancel();
   afx_msg LRESULT OnRibbonCustomize(WPARAM wp, LPARAM lp);
   afx_msg LRESULT OnHighlightRibbonListItem(WPARAM wp, LPARAM lp);
   afx_msg void OnToolsOptions();
   afx_msg void OnDummy();
   afx_msg void OnSysColorChange();
   //}}AFX_MSG

   DECLARE_MESSAGE_MAP()

   virtual BOOL OnShowMDITabContextMenu(CPoint point, DWORD dwAllowedItems, BOOL bDrop);
   virtual BOOL OnShowPopupMenu(CMFCPopupMenu *pMenuPopup);

   void ShowOptions(int nPage);
   void CreateDocumentColors();

private:
   BOOL CreateRibbonBar();
   BOOL CreateStatusBar();

   void InitMainButton();
   void InitHomeCategory();
   void InitViewCategory();
   void InitTabButtons();

   void AddContextTab_Format();

   void AdjustObjectSubmenu(CMFCPopupMenu *pMenuPopup);
   void UpdateStatusBarCountPane(int nID, CString strText, int nCount);

   UINT m_nAppLook;
};

Hierarquia de herança

CObject

CCmdTarget

CWnd

CFrameWnd

CMDIFrameWnd

CMDIFrameWndEx

Requerimentos

Cabeçalho:afxMDIFrameWndEx.h

CMDIFrameWndEx::ActiveItemRecalcLayout

Recalcula o layout do item ativo.

void ActiveItemRecalcLayout();

CMDIFrameWndEx::AddPane

Registra um painel com o gerenciador de encaixe.

BOOL AddPane(
    CBasePane* pControlBar,
    BOOL bTail=TRUE);

Parâmetros

pControlBar
[em] Ponteiro para o painel a ser registrado.

bTail
[em] Especifica se esse painel deve ser adicionado ao final da lista.

Valor de retorno

Retorna um valor diferente de zero se o painel for registrado com êxito. Retorna 0 se o painel já estiver registrado no gerenciador de encaixe.

Observações

Cada painel deve ser registrado com a CDockingManager classe antes de poder participar do layout de encaixe. Use esse método para notificar o gerenciador de encaixe de que você deseja encaixar um painel específico. Depois que esse painel é registrado, o gerenciador de encaixe o alinha com base em sua configuração de alinhamento e posição na lista de painéis mantida pelo gerenciador de encaixe.

CMDIFrameWndEx::AdjustClientArea

Reduz a área do cliente para permitir uma borda.

virtual void AdjustClientArea();

CMDIFrameWndEx::AdjustDockingLayout

Recalcula o layout de todos os painéis encaixados.

virtual void AdjustDockingLayout(HDWP hdwp=NULL);

Parâmetros

hdwp
[em] Identifica a estrutura de posição de várias janelas. Você pode obter esse valor chamando BeginDeferWindowPos.

Observações

Chame essa função de membro para recalcular o layout de todos os painéis encaixados na janela do quadro.

CMDIFrameWndEx::AreMDITabs

Determina se o recurso de guias MDI ou o recurso de grupos com guias MDI está habilitado.

BOOL AreMDITabs(int* pnMDITabsType=NULL) const;

Parâmetros

pnMDITabsType
[saídas] Um ponteiro para uma variável inteira que indica quais recursos estão habilitados:

  • 0: Todos os recursos estão desativados.
  • 1: As guias MDI estão habilitadas.
  • 2: Os grupos com guias MDI estão habilitados.

Valor de retorno

Retorna TRUE se as guias MDI ou grupos com guias MDI estiverem habilitados.

Retorna FALSE se nenhum dos recursos acima estiver habilitado.

Observações

Use esta função para determinar se as guias MDI ou grupos com guias MDI estão habilitados para a janela do quadro. Use CMDIFrameWndEx::EnableMDITabs para habilitar ou desabilitar o recurso de guias MDI.

Use CMDIFrameWndEx::EnableMDITabbedGroups para habilitar ou desabilitar o recurso de grupos com guias MDI.

CMDIFrameWndEx::CanConvertControlBarToMDIChild

Chamado pela estrutura para determinar se a janela de quadro pode converter painéis de encaixe em documentos com guias

virtual BOOL CanConvertControlBarToMDIChild();

Valor de retorno

Retorna TRUE se a janela de quadro pode converter painéis de encaixe em documentos com guias, caso contrário, retorna FALSE.

Observações

Substitua esse método em uma classe derivada e retorne TRUE para habilitar a conversão de painéis de encaixe em documentos com guias. Como alternativa, você pode definir CMDIFrameWndEx::m_bCanConvertControlBarToMDIChild como TRUE.

CMDIFrameWndEx::ControlBarToTabbedDocument

Converte o painel de encaixe especificado em um documento com guias.

virtual CMDIChildWndEx* ControlBarToTabbedDocument(CDockablePane* pBar);

Parâmetros

pBar
Um ponteiro para o painel de encaixe para converter.

Valor de retorno

Retorna um ponteiro para a nova janela filho MDI que contém o painel de encaixe.

Observações

Esse método converte um painel de encaixe em um documento com guias. Quando você chama esse método, a estrutura cria um CMDIChildWndEx objeto de classe, remove o painel de encaixe do gerenciador de encaixe e adiciona o painel de encaixe à nova janela filho MDI. A janela filho MDI redimensiona o painel de ancoragem para cobrir toda a área do cliente

CMDIFrameWndEx::CreateDocumentWindow

Cria uma janela de documento filho.

virtual CMDIChildWndEx* CreateDocumentWindow(
    LPCTSTR lpcszDocName,
    CObject* pObj);

Parâmetros

lpcszDocName
[em] Uma cadeia de caracteres de texto que contém um identificador de documento. Normalmente, é o caminho completo de um arquivo de documento.

pObj
[em] Um ponteiro para um objeto definido pelo usuário. Por exemplo, um desenvolvedor pode criar uma estrutura de dados específica do aplicativo descrevendo o documento e dizendo como o documento deve ser inicializado na inicialização.

Valor de retorno

Um ponteiro para CMDIChildWndEx.

Observações

A estrutura chama esse método quando carrega a lista de documentos salvos anteriormente no registro.

Substitua esse método para criar documentos quando eles estão sendo carregados do Registro.

Exemplo

O exemplo a seguir mostra como CreateDocumentWindow é usado no exemplo VisualStudioDemo: MFC Visual Studio Application.

Neste exemplo, g_strStartViewName pode ser o nome de um "documento virtual" (por exemplo, "Página inicial") que não é carregado de um arquivo de disco. Por conseguinte, necessitamos de um tratamento especial para tratar desse caso.

CMainFrame::CMainFrame()
{
   CMFCPopupMenu::SetForceShadow(TRUE);
   m_bCanConvertControlBarToMDIChild = TRUE;
}

CMDIFrameWndEx::CreateNewWindow

Chamado pela estrutura para criar uma nova janela.

virtual CMDIChildWndEx* CreateNewWindow(
    LPCTSTR lpcszDocName,
    CObject* pObj);

Parâmetros

lpcszDocName
[em] O nome do documento.

pObj
[em] Reservado para uso futuro.

Valor de retorno

Um ponteiro para a nova janela.

CMDIFrameWndEx::DockPane

Encaixa o painel especificado na janela do quadro.

void DockPane(
    CBasePane* pBar,
    UINT nDockBarID=0,
    LPCRECT lpRect=NULL);

Parâmetros

pBar
[em] Ponteiro para o painel a ser encaixado.

nDockBarID
[em] Especifica em quais lados da janela do quadro encaixar.

lpRect
[em] Não utilizado.

Observações

Esse método encaixa o painel especificado em um dos lados da janela de quadro que foi especificada quando CBasePane::EnableDocking e CMDIFrameWndEx::EnableDocking foram chamados.

Exemplo

O exemplo a seguir demonstra o uso do DockPane método. Este trecho de código vem do VisualStudioDemo Sample: MFC Visual Studio Application.

DockPane(&m_wndMenuBar);
DockPane(&m_wndToolBar);
DockPane(&m_wndPropertiesBar);

DockPane(&m_wndToolbarBuild);

CMDIFrameWndEx::DockPaneLeftOf

Encaixa um painel à esquerda de outro.

BOOL DockPaneLeftOf(
    CPane* pBar,
    CPane* pLeftOf);

Parâmetros

pBar
[em] Um ponteiro para o painel de encaixe.

pLeftOf
[em] Um ponteiro para o painel que serve como o local da doca.

Valor de retorno

Retorna TRUE se a operação for bem-sucedida. Caso contrário, retorna FALSE.

Observações

Chame esse método para encaixar vários objetos de painel em uma ordem predefinida. Este método encaixa o painel especificado por pBar à esquerda do painel especificado por pLeftOf.

Exemplo

O exemplo a seguir mostra como o DockPaneLeftOf método é usado no exemplo VisualStudioDemo: MFC Visual Studio Application.

DockPane(&m_wndToolbarBuild);
DockPaneLeftOf(&m_wndToolbarEdit, &m_wndToolbarBuild);

CMDIFrameWndEx::EnableAutoHidePanes

Habilita o modo de ocultação automática para painéis quando eles estão encaixados nos lados especificados da janela do quadro principal.

BOOL EnableAutoHidePanes(DWORD dwDockStyle);

Parâmetros

dwDockStyle
[em] Especifica os lados da janela do quadro principal que serão habilitados. Use um ou mais dos seguintes sinalizadores.

  • CBRS_ALIGN_LEFT
  • CBRS_ALIGN_RIGHT
  • CBRS_ALIGN_TOP
  • CBRS_ALIGN_BOTTOM

Valor de retorno

Chame essa função para habilitar o modo de ocultação automática para painéis quando eles estiverem encaixados nos lados especificados da janela do quadro principal.

Exemplo

O exemplo a seguir mostra como o EnableAutoHidePanes método é usado no exemplo VisualStudioDemo: MFC Visual Studio Application.

EnableAutoHidePanes(CBRS_ALIGN_ANY);

Observações

CMDIFrameWndEx::EnableDocking

Permite o encaixe dos painéis que pertencem à janela de quadro MDI.

BOOL EnableDocking(DWORD dwDockStyle);

Parâmetros

dwDockStyle
[em] Especifica o estilo de encaixe que você deseja aplicar.

Valor de retorno

Observações

Chame essa função para habilitar o encaixe de painéis que pertencem ao CMDIFrameWndEx objeto.

Exemplo

O exemplo a seguir mostra como o EnableDocking método é usado no exemplo VisualStudioDemo: MFC Visual Studio Application.

EnableDocking(CBRS_ALIGN_ANY);

CMDIFrameWndEx::EnableFullScreenMainMenu

Mostra ou oculta o menu principal no modo de ecrã inteiro.

void EnableFullScreenMainMenu(BOOL bEnableMenu);

Parâmetros

bEnableMenu
[em] TRUE para mostrar o menu principal no modo de ecrã inteiro ou FALSE para ocultá-lo.

Observações

CMDIFrameWndEx::EnableFullScreenMode

Ativa o modo de tela cheia para a janela de quadros.

void EnableFullScreenMode(UINT uiFullScreenCmd);

Parâmetros

uiFullScreenCmd
[em] A ID de um comando que habilita ou desabilita o modo de tela inteira.

Observações

No modo de tela cheia, todas as barras de controle, barras de ferramentas e menus de encaixe ficam ocultos e a visualização ativa é redimensionada para ocupar a tela cheia. Ao habilitar o modo de tela inteira, você deve especificar uma ID do comando que o habilita ou desabilita. Você pode ligar EnableFullScreenMode a partir da função do OnCreate quadro principal. Quando uma janela de quadro está sendo alternada para o modo de tela cheia, a estrutura cria uma barra de ferramentas flutuante com um botão que tem o ID de comando especificado. Se você quiser manter o menu principal na tela, ligue CMDIFrameWndEx::EnableFullScreenMainMenupara .

CMDIFrameWndEx::EnableLoadDockState

Habilita ou desabilita o carregamento do estado de encaixe.

void EnableLoadDockState(BOOL bEnable = TRUE);

Parâmetros

bEnable
[em] TRUE Para habilitar o carregamento do estado de encaixe, FALSE para desabilitar o carregamento do estado de encaixe.

Observações

CMDIFrameWndEx::EnableMDITabbedGroups

Habilita ou desabilita o recurso de grupos com guias MDI para a janela de quadros.

void EnableMDITabbedGroups(
    BOOL bEnable,
    const CMDITabInfo& params);

Parâmetros

bEnable
[em] Se TRUE, o recurso de grupos com guias MDI estiver habilitado, se FALSE, o recurso de grupos com guias MDI estiver desabilitado.

params
[em] Especifica parâmetros que a estrutura aplica a janelas filho que são criadas na área do cliente MDI.

Observações

Use esse método para habilitar ou desabilitar o recurso de grupos com guias MDI. Esse recurso permite que os aplicativos MDI exibam janelas filho como janelas com guias alinhadas vertical ou horizontalmente dentro da área do cliente MDI. Grupos de janelas com abas são separados por divisores. O usuário pode redimensionar grupos com guias usando um divisor.

O utilizador pode:

  • Arraste separadores individuais entre grupos.
  • Arraste guias individuais até a borda da janela para criar novos grupos.
  • Mova separadores ou crie novos grupos utilizando um menu de atalho.
  • Seu aplicativo pode salvar o layout atual de janelas com guias e a lista de documentos abertos no momento.

Se você chamar esse método com bEnable definido como FALSE, params será ignorado.

Mesmo que os grupos com guias MDI já estejam habilitados, você pode chamar esse método novamente para modificar as configurações das janelas filhas. Chame o método com bEnable set to TRUE e modifique os CMDITabInfo membros do objeto especificados pelo params parâmetro.

Para obter mais informações sobre como usar grupos com guias MDI, consulte Grupos com guias MDI.

Exemplo

O exemplo a seguir mostra como EnableMDITabbedGroups é usado no exemplo VisualStudioDemo: MFC Visual Studio Application.

CMDITabInfo mdiTabParams;
mdiTabParams.m_bTabCustomTooltips = TRUE;

if (bMDITabsVS2005Look)
{
   mdiTabParams.m_style = CMFCTabCtrl::STYLE_3D_VS2005;
   mdiTabParams.m_bDocumentMenu = TRUE;
}
else if (bOneNoteTabs)
{
   mdiTabParams.m_style = CMFCTabCtrl::STYLE_3D_ONENOTE;
   mdiTabParams.m_bAutoColor = bMDITabColors;
}

if (bActiveTabCloseButton)
{
   mdiTabParams.m_bTabCloseButton = FALSE;
   mdiTabParams.m_bActiveTabCloseButton = TRUE;
}

EnableMDITabbedGroups(TRUE, mdiTabParams);

CMDIFrameWndEx::EnableMDITabs

Habilita ou desabilita o recurso Guias MDI para a janela de quadro MDI. Quando ativada, a janela de quadro exibe uma guia para cada janela filho MDI.

void EnableMDITabs(
    BOOL bEnable=TRUE,
    BOOL bIcons=TRUE,
    CMFCTabCtrl::Location tabLocation=CMFCTabCtrl::LOCATION_BOTTOM,
    BOOL bTabCloseButton=FALSE,
    CMFCTabCtrl::Style style=CMFCTabCtrl::STYLE_3D_SCROLLED,
    BOOL bTabCustomTooltips=FALSE,
    BOOL bActiveTabCloseButton=FALSE);

Parâmetros

bEnable
Especifica se as guias estão habilitadas.

bIcons
Especifica se os ícones devem ser exibidos nas guias.

tabLocation
Especifica o local dos rótulos das guias.

bTabCloseButton
Especifica se os botões de fechamento de tabulação devem ser exibidos.

style
Especifica o estilo das guias. Use STYLE_3D_SCROLLED para guias regulares ou STYLE_3D_ONENOTE para guias do Microsoft OneNote.

bTabCustomTooltips
Especifica se as dicas de ferramentas personalizadas estão habilitadas.

bActiveTabCloseButton
Se TRUE, um botão Fechar será exibido na guia ativa em vez de no canto direito da área da guia.

Observações

Chame esse método para habilitar ou desabilitar o recurso de guias MDI para a janela de quadro MDI. Quando ativada, todas as janelas filho são exibidas como guias.

Os rótulos das guias podem estar localizados na parte superior ou inferior do quadro, dependendo da configuração do parâmetro tabLocation. Você pode especificar ( CMFCTabCtrl::LOCATION_BOTTOM a configuração padrão) ou CMFCTabCtrl::LOCATION_TOP.

Se bTabCustomTooltips for TRUE, uma AFX_WM_ON_GET_TAB_TOOLTIP mensagem será enviada para a janela do quadro principal. Seu código pode manipular essa mensagem e fornecer à estrutura dicas de ferramentas personalizadas para guias MDI.

Exemplo

O exemplo a seguir mostra como EnableMDITabs é usado no MDITabsDemo Sample: MFC Tabbed MDI Application.

void CMainFrame::UpdateMDITabs(BOOL bResetMDIChild)
{
   CMDITabInfo params;
   HWND hwndActive = NULL;

   switch (theApp.m_Options.m_nMDITabsType)
   {
   case CMDITabOptions::None:
   {
      BOOL bCascadeMDIChild = FALSE;

      if (IsMDITabbedGroup())
      {
         EnableMDITabbedGroups(FALSE, params);
         bCascadeMDIChild = TRUE;
      }
      else if (AreMDITabs())
      {
         EnableMDITabs(FALSE);
         bCascadeMDIChild = TRUE;
      }

      if (bCascadeMDIChild)
      {
         // CMDIClientAreaWnd m_wndClientArea
         hwndActive = (HWND)m_wndClientArea.SendMessage(WM_MDIGETACTIVE);
         m_wndClientArea.PostMessage(WM_MDICASCADE);
         m_wndClientArea.UpdateTabs(false);
         m_wndClientArea.SetActiveTab(hwndActive);
         ::BringWindowToTop(hwndActive);
      }
   }
   break;

   case CMDITabOptions::MDITabsStandard:
      hwndActive = (HWND)m_wndClientArea.SendMessage(WM_MDIGETACTIVE);
      m_wndClientArea.PostMessage(WM_MDIMAXIMIZE, LPARAM(hwndActive), 0L);
      ::BringWindowToTop(hwndActive);

      EnableMDITabs(TRUE, theApp.m_Options.m_bMDITabsIcons, theApp.m_Options.m_bTabsOnTop ? CMFCTabCtrl::LOCATION_TOP : CMFCTabCtrl::LOCATION_BOTTOM, theApp.m_Options.m_nTabsStyle);

      GetMDITabs().EnableAutoColor(theApp.m_Options.m_bTabsAutoColor);
      GetMDITabs().EnableTabDocumentsMenu(theApp.m_Options.m_bMDITabsDocMenu);
      GetMDITabs().EnableTabSwap(theApp.m_Options.m_bDragMDITabs);
      GetMDITabs().SetTabBorderSize(theApp.m_Options.m_nMDITabsBorderSize);
      GetMDITabs().SetFlatFrame(theApp.m_Options.m_bFlatFrame);
      GetMDITabs().EnableCustomToolTips(theApp.m_Options.m_bCustomTooltips);
      GetMDITabs().EnableCustomToolTips(theApp.m_Options.m_bCustomTooltips);
      GetMDITabs().EnableActiveTabCloseButton(theApp.m_Options.m_bActiveTabCloseButton);
      break;

CMDIFrameWndEx::EnableMDITabsLastActiveActivation

Especifica se a última guia ativa deve ser aberta quando o usuário fecha a guia atual.

void EnableMDITabsLastActiveActivation(BOOL bLastActiveTab=TRUE);

Parâmetros

bLastActiveTab
[em] Se TRUE, habilite a ativação da última guia ativa. Se FALSE, desative a ativação da última guia ativa.

Observações

Há duas maneiras de abrir uma guia quando a guia ativa é fechada:

  • Ative o separador seguinte.
  • Ative a guia ativa anteriormente.

A implementação padrão usa a primeira maneira.

Use EnableMDITabsLastActiveActivation para ativar a segunda forma de ativação de guias. Ele emula a maneira como o Windows abre janelas filho MDI.

CMDIFrameWndEx::EnablePaneMenu

Habilita ou desabilita a criação e o gerenciamento automáticos do menu do painel pop-up, que exibe uma lista de painéis de aplicativos.

void EnablePaneMenu(
    BOOL bEnable,
    UINT uiCustomizeCmd,
    const CString& strCustomizeLabel,
    UINT uiViewToolbarsMenuEntryID,
    BOOL bContextMenuShowsToolbarsOnly=FALSE,
    BOOL bViewMenuShowsToolbarsOnly=FALSE);

Parâmetros

bEnable
[em] Se TRUE, a manipulação automática do menu do painel estiver ativada, se FALSEa manipulação automática estiver desativada.

uiCustomizeCmd
[em] ID de comando do item de menu Personalizar . Este item de menu geralmente é adicionado ao final da lista de painéis.

strCustomizeLabel
[em] O texto a ser exibido para o item de menu Personalizar (para localização).

uiViewToolbarsMenuEntryID
[em] Especifica a ID de um item de menu da barra de ferramentas que abre o menu do painel. Normalmente, este é o submenu Barras de ferramentas do menu Exibir .

bContextMenuShowsToolbarsOnly
[em] Se TRUEo , o menu do painel exibirá apenas uma lista de barras de ferramentas. Se FALSE, o menu exibe uma lista de barras de ferramentas e barras de encaixe.

bViewMenuShowsToolbarsOnly
[em] Se TRUEo , o menu do painel exibirá apenas uma lista de barras de ferramentas. Se FALSE, o menu exibe uma lista de barras de ferramentas e barras de encaixe.

Observações

O menu do painel pop-up exibe a lista de painéis do aplicativo e permite que o usuário mostre ou oculte painéis individuais.

Exemplo

O exemplo a seguir mostra como EnablePaneMenu é usado no exemplo VisualStudioDemo: MFC Visual Studio Application.

// Enable pane context menu(list of bars + customize command):
EnablePaneMenu(TRUE, ID_VIEW_CUSTOMIZE, _T("Customize..."), ID_VIEW_TOOLBARS, FALSE, TRUE);

CMDIFrameWndEx::EnableWindowsDialog

Insere um item de menu cujo ID de comando chama uma CMFCWindowsManagerDialog caixa de diálogo.

void EnableWindowsDialog(
    UINT uiMenuId,
    LPCTSTR lpszMenuText,
    BOOL bShowAllways=FALSE,
    BOOL bShowHelpButton=FALSE);

void EnableWindowsDialog(
    UINT uiMenuId,
    UINT uiMenuTextResId,
    BOOL bShowAllways=FALSE,
    BOOL bShowHelpButton=FALSE);

Parâmetros

uiMenuId
[em] Especifica a ID do recurso de um menu.

lpszMenuText
[em] Especifica o texto do item.

bShowHelpButton
[em] Especifica se um botão Ajuda deve ser exibido na caixa de diálogo de gerenciamento do Windows.

uiMenuTextResId
[em] O identificador de recurso de cadeia de caracteres que contém a cadeia de caracteres de texto do item.

Observações

Use esse método para inserir um item de menu cujo comando chama uma caixa de diálogo de gerenciamento de janela filho MDI ( CMFCWindowsManagerDialog classe). O novo item é inserido no menu especificado por uiMenuId. Ligue EnableWindowsDialog quando processar a WM_CREATE mensagem.

Exemplo

O exemplo a seguir mostra como EnableWindowsDialog é usado no exemplo VisualStudioDemo: MFC Visual Studio Application.

// Enable windows manager:
EnableWindowsDialog(ID_WINDOW_MANAGER, _T("Windows..."), TRUE);

CMDIFrameWndEx::GetActivePopup

Retorna um ponteiro para o menu pop-up exibido no momento.

CMFCPopupMenu* GetActivePopup() const;

Valor de retorno

Um ponteiro para o menu pop-up ativo; NULL se nenhum menu pop-up estiver ativo.

Observações

Use esta função para obter um ponteiro para o CMFCPopupMenu objeto de classe que é exibido no momento.

CMDIFrameWndEx::GetDefaultResId

Retorna a ID dos recursos compartilhados da janela de quadro MDI.

UINT GetDefaultResId() const;

Valor de retorno

Um valor de ID de recurso. 0 se a janela do quadro não tiver barra de menus.

Observações

Esse método retorna a ID do recurso que foi especificada quando a janela de quadro MDI foi carregada pelo CFrameWnd::LoadFrame.

CMDIFrameWndEx::GetMDITabGroups

Retorna uma lista de janelas com guias MDI.

const CObList& GetMDITabGroups() const;

Valor de retorno

Uma referência a um CObList objeto de classe que contém uma lista de janelas com guias. Não armazene nem modifique a lista.

Observações

Use esse método para acessar a lista de janelas com guias. Pode ser útil se você quiser alterar ou consultar alguns parâmetros de janelas com guias individuais.

CMDIFrameWndEx::GetMDITabs

Retorna uma referência à janela com guias sublinhada.

CMFCTabCtrl& GetMDITabs();

Valor de retorno

Uma referência à janela com separadores sublinhada.

CMDIFrameWndEx::GetMDITabsContextMenuAllowedItems

Retorna uma combinação de sinalizadores que determina quais operações são válidas quando o recurso Grupos com guias MDI está habilitado.

DWORD GetMDITabsContextMenuAllowedItems();

Valor de retorno

Uma combinação bit a bit "ou" (|) dos seguintes sinalizadores:

  • AFX_MDI_CREATE_VERT_GROUP - pode criar um grupo de abas verticais.
  • AFX_MDI_CREATE_HORZ_GROUP - pode criar um grupo de abas horizontais.
  • AFX_MDI_CAN_MOVE_PREV - pode mover um separador para o grupo de separadores anterior.
  • AFX_MDI_CAN_MOVE_NEXT - pode mover uma guia para o próximo grupo de guias.

Observações

Quando o recurso Grupos com guias MDI está habilitado, você deve saber quais operações são permitidas nas guias de uma janela específica. Esse método analisa o layout atual de janelas com guias e retorna uma combinação de sinalizadores que podem ser usados para criar, por exemplo, um menu de atalho.

Você pode criar um novo grupo de guias verticais quando todas as janelas com guias estiverem alinhadas verticalmente ou quando houver apenas uma janela com guias.

Você pode criar um novo grupo de guias horizontais quando todas as janelas com guias estiverem alinhadas horizontalmente ou quando houver apenas uma janela com guias.

Você pode mover uma guia para o grupo anterior somente se houver mais de uma guia em uma janela com guias.

Você pode mover uma guia para o próximo grupo somente se houver mais de uma guia em uma janela com guias.

CMDIFrameWndEx::GetMenuBar

Retorna um ponteiro para um objeto da barra de menus anexado à janela do quadro.

const CMFCMenuBar* GetMenuBar() const;

Valor de retorno

Um ponteiro para um objeto da barra de menus.

CMDIFrameWndEx::GetPane

Retorna um ponteiro para o painel que tem a ID de controle especificada.

CBasePane* GetPane(UINT nID);

Parâmetros

nID
[em] O ID de controle.

Valor de retorno

Um ponteiro para o painel que tem a ID de controle especificada, se ela existir. Caso contrário, NULL.

CMDIFrameWndEx::GetRibbonBar

Recupera o controle da barra da faixa de opções do quadro.

CMFCRibbonBar* GetRibbonBar();

Valor de retorno

Ponteiro para a CMFCRibbonBar classe do quadro.

Observações

CMDIFrameWndEx::GetTearOffBars

Retorna uma lista de menus destacáveis.

const CObList& GetTearOffBars() const;

Valor de retorno

Uma referência a um CObList objeto de classe que contém uma coleção de ponteiros para CPaneobjetos derivados que estão em um estado destacável.

Observações

CMDIFrameWndEx mantém uma coleção de menus destacáveis. Use esse método para recuperar uma referência a essa lista.

CMDIFrameWndEx::GetToolbarButtonToolTipText

Chamado pela estrutura quando o aplicativo exibe a dica de ferramenta para um botão da barra de ferramentas.

virtual BOOL GetToolbarButtonToolTipText(
    CMFCToolBarButton* pButton,
    CString& strTTText);

Parâmetros

pButton
[em] Um ponteiro para um botão da barra de ferramentas.

strTTText
[em] O texto da dica de ferramenta a ser exibido para o botão.

Valor de retorno

TRUE se a dica de ferramenta tiver sido exibida. FALSE caso contrário.

Observações

CMDIFrameWndEx::InsertPane

Registra o painel especificado com o gerenciador de encaixe.

BOOL InsertPane(
    CBasePane* pControlBar,
    CBasePane* pTarget,
    BOOL bAfter=TRUE);

Parâmetros

pControlBar
[em] Um ponteiro para o painel a ser inserido.

pTarget
[em] Um ponteiro para o painel antes ou depois do qual inserir o painel.

bAfter
[em] Se TRUE, pControlBar é inserido após pTarget. Se FALSE, pControlBar é inserido antes de pTarget.

Valor de retorno

TRUE Se o método registrar com êxito o painel, FALSE se o painel já estiver registrado no Gerenciador de encaixe.

Observações

Use este método para informar o gerente de encaixe sobre um painel especificado pelo pControlBar. O gestor de ancoragem alinhará este painel de acordo com o alinhamento e a posição do painel na lista interna do gestor de ancoragem.

CMDIFrameWndEx::IsFullScreen

Determina se a janela do quadro está no modo de tela cheia.

BOOL IsFullScreen() const;

Valor de retorno

TRUE se a janela do quadro estiver no modo de tela cheia; caso contrário FALSE.

Observações

Você pode definir o modo de tela cheia chamando o CMDIFrameWndEx::EnableFullScreenMode método.

CMDIFrameWndEx::IsMDITabbedGroup

Especifica se o recurso Grupos com guias MDI está habilitado.

BOOL IsMDITabbedGroup() const;

Valor de retorno

TRUE se o recurso Grupos com guias MDI estiver habilitado; caso contrário FALSE.

Observações

Para determinar se as guias MDI regulares ou o recurso Grupos com guias MDI estão habilitados, use CMDIFrameWndEx::AreMDITabs.

CMDIFrameWndEx::IsMemberOfMDITabGroup

Determina se a janela com guias especificada está na lista de janelas que estão em Grupos com guias MDI.

BOOL IsMemberOfMDITabGroup(CWnd* pWnd);

Parâmetros

pWnd
[em] Um ponteiro para a janela com guias.

Valor de retorno

TRUE se a janela com guias especificada estiver na lista de janelas com guias que formam Grupos com guias MDI. Caso contrário, FALSE.

CMDIFrameWndEx::IsMenuBarAvailable

Determina se a janela do quadro tem uma barra de menus.

BOOL IsMenuBarAvailable() const;

Valor de retorno

TRUE se o ponteiro para o objeto da barra de menus não NULLfor ; caso contrário FALSE.

CMDIFrameWndEx::IsPointNearDockSite

Determina se um ponto especificado está perto do local da doca.

BOOL IsPointNearDockSite(
    CPoint point,
    DWORD& dwBarAlignment,
    BOOL& bOuterEdge) const;

Parâmetros

point
[em] O ponto especificado nas coordenadas da tela.

dwBarAlignment
[em] Especifica qual borda o ponto está próximo. Os valores possíveis são CBRS_ALIGN_LEFT, CBRS_ALIGN_RIGHT, CBRS_ALIGN_TOPe CBRS_ALIGN_BOTTOM

bOuterEdge
[em] TRUE se o ponto estiver próximo do limite exterior do local do cais; FALSE caso contrário.

Valor de retorno

TRUE se o ponto estiver próximo do local do cais; caso contrário FALSE.

Observações

O ponto está perto do local da doca quando está dentro da sensibilidade definida no gerenciador de ancoragem. A sensibilidade padrão é de 15 pixels.

CMDIFrameWndEx::IsPrintPreview

Determina se a janela do quadro está no modo de visualização de impressão.

BOOL IsPrintPreview();

Valor de retorno

TRUE se a janela do quadro estiver no modo de visualização de impressão; caso contrário, FALSE.

Observações

CMDIFrameWndEx::LoadFrame

Cria uma janela de quadro a partir de informações de recursos.

virtual BOOL LoadFrame(
    UINT nIDResource,
    DWORD dwDefaultStyle = WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE,
    CWnd* pParentWnd = NULL,
    CCreateContext* pContext = NULL);

Parâmetros

nIDResource
[em] A ID de um recurso compartilhado associado à janela do quadro.

dwDefaultStyle
[em] O estilo da janela do quadro.

pParentWnd
[em] Um ponteiro para o pai do quadro.

pContext
[em] Um ponteiro para uma CCreateContext Estrutura. Este parâmetro pode ser NULL.

Valor de retorno

TRUE se o método for bem-sucedido, caso contrário FALSE.

CMDIFrameWndEx::LoadMDIState

Carrega o layout especificado de Grupos com guias MDI e a lista de documentos abertos anteriormente.

virtual BOOL LoadMDIState(LPCTSTR lpszProfileName);

Parâmetros

lpszProfileName
[em] Especifica o nome do perfil.

Valor de retorno

TRUE se a carga foi bem-sucedida; FALSE se a carga falhou ou não há dados para carregar.

Observações

Para carregar ou salvar o estado de guias e grupos MDI e a lista de documentos abertos, faça o seguinte:

  • Chamada CMDIFrameWndEx::SaveMDIState quando o quadro principal está sendo fechado
  • Ligue CMDIFrameWndEx::LoadMDIState quando o quadro principal estiver sendo criado. O local recomendado para esta chamada é antes que o quadro principal seja exibido pela primeira vez. Adicionar CWinAppEx::EnableLoadWindowPlacement(FALSE); antes de pMainFrame->LoadFrame (IDR_MAINFRAME);. Adicione CWinAppEx::ReloadWindowPlacement(pMainFrame); após a chamada para LoadMDIState exibir o quadro principal na posição que foi armazenada no registro.
  • Substitua GetDocumentName na classe derivada CMDIChildWndEx- se seu aplicativo exibir documentos que não são armazenados como arquivos. A cadeia de caracteres retornada será salva no registro como o identificador do documento. A implementação base de CMDIChildWndEx::GetDocumentName retorna um valor obtido de CDocument::GetPathName.
  • Substitua CMDIFrameWndEx::CreateDocumentWindow para criar documentos corretamente quando eles estão sendo carregados do Registro. O primeiro parâmetro é a cadeia de caracteres que GetDocumentName retornou.

Exemplo

O exemplo a seguir mostra como LoadMDIState é usado no exemplo VisualStudioDemo: MFC Visual Studio Application.

// Parse command line for standard shell commands, DDE, file open
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);

if (cmdInfo.m_nShellCommand == CCommandLineInfo::FileNew)
{
   if (!pMainFrame->LoadMDIState(GetRegSectionPath()))
   {
      m_pStartDocTemplate->OpenDocumentFile(NULL);
   }
}
else
{
   // Dispatch commands specified on the command line
   if (!ProcessShellCommand(cmdInfo))
   {
      return FALSE;
   }
}

CMDIFrameWndEx::MDITabMoveToNextGroup

Move a guia ativa da janela com guias atualmente ativa para o grupo com guias anterior ou seguinte.

void MDITabMoveToNextGroup(BOOL bNext=TRUE);

Parâmetros

bNext
[em] Se TRUE, mova a guia para o próximo grupo com guias. Se FALSE, mova-o para o grupo com guias anterior.

CMDIFrameWndEx::MDITabNewGroup

Cria um novo grupo com guias que tem uma única janela.

void MDITabNewGroup(BOOL bVert=TRUE);

Parâmetros

bVert
[em] Especifica o novo alinhamento de grupo. Se TRUE, o novo grupo é alinhado verticalmente. Se FALSE, o novo grupo está alinhado horizontalmente.

Observações

Use esta função para criar uma nova janela com guias (novo grupo com guias) e adicionar a primeira guia a ela.

Exemplo

O exemplo a seguir mostra como MDITabNewGroup é usado no exemplo VisualStudioDemo: MFC Visual Studio Application.

void CMainFrame::OnMdiNewHorzTabGroup()
{
   MDITabNewGroup(FALSE);
}

CMDIFrameWndEx::m_bCanConvertControlBarToMDIChild

Especifica se os painéis de encaixe podem ser convertidos em janelas filhas MDI.

BOOL m_bCanConvertControlBarToMDIChild;

Observações

Indica se as barras de controle de encaixe podem ser convertidas em janelas filhas MDI. Se esse sinalizador for TRUE, a estrutura manipulará a conversão automaticamente quando o usuário selecionar o comando Documento com guias . O sinalizador é protegido e você deve habilitar explicitamente essa opção definindo m_bCanConvertControlBarToMDIChild em um construtor de uma CMDIFrameWndExclasse derivada ou substituindo CanConvertControlBarToMDIChild.

O valor predefinido é FALSE.

Exemplo

O exemplo a seguir mostra como m_bCanConvertControlBarToMDIChild é usado no exemplo VisualStudioDemo: MFC Visual Studio Application.

CMainFrame::CMainFrame()
{
   CMFCPopupMenu::SetForceShadow(TRUE);
   m_bCanConvertControlBarToMDIChild = TRUE;
}

CMDIFrameWndEx::m_bDisableSetRedraw

Habilita ou desabilita a otimização de redesenho para janelas filhas MDI.

AFX_IMPORT_DATA static BOOL m_bDisableSetRedraw;

Observações

O valor predefinido é TRUE.

Defina esse sinalizador como FALSE se quiser otimizar o redesenho de filhos MDI. Nesse caso, a estrutura chamará SetRedraw (FALSE) o quadro principal quando o aplicativo estiver alterando a guia ativa.

Esse sinalizador pode causar efeitos indesejados (como aplicativos em segundo plano que se tornam visíveis). Portanto, recomendamos que você altere o padrão somente se você experimentar cintilação percetível durante a ativação da guia MDI.

CMDIFrameWndEx::NegotiateBorderSpace

Negocia o espaço de borda em uma janela de quadro durante a ativação OLE in-loco.

virtual BOOL NegotiateBorderSpace(
    UINT nBorderCmd,
    LPRECT lpRectBorder);

Parâmetros

nBorderCmd
[em] Contém um dos seguintes valores do enum CFrameWnd::BorderCmd:

  • borderGet = 1
  • borderRequest = 2
  • borderSet = 3

lpRectBorder
[dentro, fora] Ponteiro para uma RECT estrutura ou um CRect objeto de classe que especifica as coordenadas da borda.

Valor de retorno

Diferente de zero se o método foi bem-sucedido; caso contrário, 0.

Observações

Este método é uma implementação da negociação de espaço de borda OLE.

CMDIFrameWndEx::OnCloseDockingPane

Chamado pela estrutura quando o usuário clica no botão Fechar em um painel encaixável.

virtual BOOL OnCloseDockingPane(CDockablePane* pWnd);

Parâmetros

pWnd
[em] Ponteiro para o painel que está sendo fechado.

Valor de retorno

TRUE se o painel de ancoragem puder ser fechado. Caso contrário, FALSE.

Observações

Substitua esse método para lidar com a ocultação de painéis de encaixe. Retorne FALSE se quiser evitar que um painel de ancoragem fique oculto.

A implementação padrão não faz nada e retorna TRUE.

CMDIFrameWndEx::OnCloseMiniFrame

Chamado pela estrutura quando o usuário clica no botão Fechar em uma janela flutuante de miniquadros.

virtual BOOL OnCloseMiniFrame(CPaneFrameWnd*);

Parâmetros

pWnd
[em] Ponteiro para a janela do miniquadro que está sendo fechada.

Valor de retorno

TRUE se a janela flutuante do mini-quadro puder ser fechada. Caso contrário, FALSE.

Observações

Substitua esse método para lidar com a ocultação de janelas flutuantes de miniquadro. Retorne FALSE se quiser evitar que uma janela flutuante de minimoldura fique oculta.

A implementação padrão não faz nada e retorna TRUE.

CMDIFrameWndEx::OnClosePopupMenu

Chamado pela estrutura quando um menu pop-up ativo processa uma WM_DESTROY mensagem.

virtual void OnClosePopupMenu(CMFCPopupMenu* pMenuPopup);

Parâmetros

pMenuPopup
[em] Ponteiro para um menu pop-up.

Observações

Substitua esse método se você quiser processar notificações de objetos de CMFCPopupMenu classe que pertencem à janela de quadro MDI quando esses objetos processam WM_DESTROY mensagens.

CMDIFrameWndEx::OnCmdMsg

Chamado pela estrutura para rotear e despachar mensagens de comando e atualizar objetos de interface do usuário de comando.

virtual BOOL OnCmdMsg(
    UINT nID,
    int nCode,
    void* pExtra,
    AFX_CMDHANDLERINFO* pHandlerInfo);

Parâmetros

nID
[em] O ID do comando.

nCode
[em] Identifica o código de notificação de comando. Para obter mais informações sobre valores para nCode, consulte CCmdTarget::OnCmdMsg.

pExtra
[em] Usado de acordo com o valor de nCode. Para obter mais informações sobre pExtrao , consulte CCmdTarget::OnCmdMsg.

pHandlerInfo
[dentro, fora] Normalmente, esse parâmetro deve ser NULL. Se não NULL, OnCmdMsg preenche os pTarget e pmf membros da pHandlerInfo estrutura em vez de despachar o comando.

Valor de retorno

Diferente de zero se a mensagem for tratada; caso contrário, 0.

CMDIFrameWndEx::OnDrawMenuImage

Chamado pela estrutura quando a imagem associada a um item de menu é desenhada.

virtual BOOL OnDrawMenuImage(
    CDC* pDC,
    const CMFCToolBarMenuButton* pMenuButton,
    const CRect& rectImage);

Parâmetros

pDC
[em] Ponteiro para um contexto de dispositivo.

pMenuButton
[em] Ponteiro para o botão de menu.

rectImage
[em] Retângulo delimitador da imagem.

Valor de retorno

TRUE se o método desenha a imagem. A implementação padrão retorna FALSE.

Observações

Substitua esse método se desejar personalizar a renderização de imagem para os itens de menu que pertencem à barra de menus de propriedade do CMDIFrameWndExobjeto -derivado. A implementação padrão não faz nada.

Chamado pela estrutura quando um CMFCPopupMenu processa uma WM_PAINT mensagem.

virtual void OnDrawMenuLogo(
    CDC*,
    CMFCPopupMenu*,
    const CRect&);

Observações

Substitua essa função para exibir um logotipo no menu pop-up que pertence à barra de menus de propriedade do CMDIFrameWndExobjeto derivado. A implementação padrão não faz nada.

CMDIFrameWndEx::OnEraseMDIClientBackground

Chamado pela estrutura quando a janela de quadro MDI processa uma WM_ERASEBKGND mensagem.

virtual BOOL OnEraseMDIClientBackground(CDC*);

Valor de retorno

TRUE se o aplicativo processar a mensagem e apagar o plano de fundo.

Observações

Substitua essa função de membro se desejar processar a WM_ERASEBKGND mensagem em uma CMDIFrameWndExclasse derivada.

CMDIFrameWndEx::OnMenuButtonToolHitTest

Chamado pela estrutura quando um CMFCToolBarButton objeto processa uma WM_NCHITTEST mensagem.

virtual BOOL OnMenuButtonToolHitTest(
    CMFCToolBarButton* pButton,
    TOOLINFO* pTI);

Parâmetros

pButton
[em] O botão da barra de ferramentas.

pTI
[saídas] Ponteiro para uma TOOLINFO estrutura.

Valor de retorno

TRUE se o aplicativo preencher o pTI parâmetro. A implementação padrão retorna FALSE.

Observações

Substitua esse método se você quiser fornecer informações sobre itens de menu específicos para uma dica de ferramenta. A implementação padrão não faz nada.

CMDIFrameWndEx::OnMoveMiniFrame

Chamado pela estrutura para mover uma janela de miniquadro.

virtual BOOL OnMoveMiniFrame(CWnd* pFrame);

Parâmetros

pFrame
[em] Um ponteiro para uma janela de miniquadro.

Valor de retorno

TRUE se o método for bem-sucedido, caso contrário FALSE.

CMDIFrameWndEx::OnSetPreviewMode

Define o modo de visualização de impressão da janela do quadro principal do aplicativo.

virtual void OnSetPreviewMode(
    BOOL bPreview,
    CPrintPreviewState* pState);

Parâmetros

bPreview
[em] Se TRUE, define o modo de visualização de impressão. Se FALSE, cancela o modo de visualização.

pState
[em] Um ponteiro para uma CPrintPreviewState estrutura.

Observações

Este método substitui o CFrameWnd::OnSetPreviewMode.

CMDIFrameWndEx::OnShowCustomizePane

Chamado pela estrutura quando um painel de Personalização Rápida é ativado.

virtual BOOL OnShowCustomizePane(
    CMFCPopupMenu* pMenuPane,
    UINT uiToolbarID);

Parâmetros

pMenuPane
[em] Um ponteiro para o painel Personalização Rápida.

uiToolbarID
[em] ID de controle da barra de ferramentas a ser personalizada.

Valor de retorno

Esse método sempre retorna TRUE.

Observações

O painel Personalização Rápida é um menu que é aberto quando o usuário clica em Personalizar em uma barra de ferramentas.

Substitua esse método em uma classe derivada para fazer alterações no painel Personalização Rápida.

CMDIFrameWndEx::OnShowMDITabContextMenu

Chamado pela estrutura antes de um menu de atalho é exibido em uma das guias. Válido apenas para grupos com guias MDI.

virtual BOOL OnShowMDITabContextMenu(
    CPoint point,
    DWORD dwAllowedItems,
    BOOL bTabDrop);

Parâmetros

point
[em] A localização do menu nas coordenadas da tela.

dwAllowedItems
[em] Uma combinação bit a bit "ou" (|) de sinalizadores que indica quais ações são permitidas para a guia atual:

  • AFX_MDI_CREATE_VERT_GROUP - pode criar um grupo de abas verticais.
  • AFX_MDI_CREATE_HORZ_GROUP - pode criar um grupo de abas horizontais.
  • AFX_MDI_CAN_MOVE_PREV - pode mover um separador para o grupo de separadores anterior.
  • AFX_MDI_CAN_MOVE_NEXT - pode mover uma guia para o próximo grupo de guias.
  • AFX_MDI_CAN_BE_DOCKED - Mude um documento com guias para o estado encaixado (relevante apenas para documentos com guias).

bTabDrop
[em] TRUE para exibir o menu como resultado de arrastar a guia para outro grupo com guias. FALSE para exibir o menu como um menu de atalho na guia Atualmente Ativo.

Valor de retorno

Substitua esse método em uma CMDIFrameWndExclasse derivada.

Observações

Se você não processar OnShowMDITabContextMenu, o menu de atalho não será exibido. Esta função é gerada pelo MFC Application Wizard quando ativa a funcionalidade MDI Tabbed Groups.

Exemplo

O exemplo a seguir mostra como OnShowMDITabContextMenu é usado no exemplo VisualStudioDemo: MFC Visual Studio Application.

BOOL CMainFrame::OnShowMDITabContextMenu(CPoint point, DWORD dwAllowedItems, BOOL bDrop)
{
   CMenu menu;
   VERIFY(menu.LoadMenu(bDrop ? IDR_POPUP_DROP_MDITABS : IDR_POPUP_MDITABS));

   CMenu* pPopup = menu.GetSubMenu(0);
   ASSERT(pPopup != NULL);

   if ((dwAllowedItems & AFX_MDI_CREATE_HORZ_GROUP) == 0)
   {
      pPopup->DeleteMenu(ID_MDI_NEW_HORZ_TAB_GROUP, MF_BYCOMMAND);
   }

   if ((dwAllowedItems & AFX_MDI_CREATE_VERT_GROUP) == 0)
   {
      pPopup->DeleteMenu(ID_MDI_NEW_VERT_GROUP, MF_BYCOMMAND);
   }

   if ((dwAllowedItems & AFX_MDI_CAN_MOVE_NEXT) == 0)
   {
      pPopup->DeleteMenu(ID_MDI_MOVE_TO_NEXT_GROUP, MF_BYCOMMAND);
   }

   if ((dwAllowedItems & AFX_MDI_CAN_MOVE_PREV) == 0)
   {
      pPopup->DeleteMenu(ID_MDI_MOVE_TO_PREV_GROUP, MF_BYCOMMAND);
   }

   if ((dwAllowedItems & AFX_MDI_CAN_BE_DOCKED) == 0)
   {
      pPopup->DeleteMenu(ID_MDI_TABBED_DOCUMENT, MF_BYCOMMAND);
   }

   CMFCPopupMenu* pPopupMenu = new CMFCPopupMenu;
   pPopupMenu->SetAutoDestroy(FALSE);
   pPopupMenu->Create(this, point.x, point.y, pPopup->GetSafeHmenu());

   return TRUE;
}

CMDIFrameWndEx::OnShowPanes

Chamado pela estrutura para mostrar ou ocultar painéis.

virtual BOOL OnShowPanes(BOOL bShow);

Parâmetros

bShow
[em] TRUE para mostrar painéis, FALSE para ocultar painéis.

Valor de retorno

TRUE Se o estado dos painéis for alterado como resultado da chamada desse método, FALSE se os painéis já estiverem no estado especificado por bShow. Por exemplo, se os painéis estiverem ocultos e bShow for FALSE, o valor Return será FALSE.

Observações

A implementação padrão remove a barra de ferramentas da janela de quadro de nível superior.

Se CDockingManager::m_bHideDockingBarsInContainerMode for TRUE (o padrão), todos os painéis de encaixe ficarão ocultos.

CMDIFrameWndEx::OnShowPopupMenu

Chamado pela estrutura quando abre um menu pop-up.

virtual BOOL OnShowPopupMenu(CMFCPopupMenu*);

Valor de retorno

TRUE se o menu pop-up for exibido. Caso contrário, FALSE. A implementação padrão retorna TRUE.

Observações

Substitua esse método se você quiser implementar processamento especial na ativação do menu pop-up. Por exemplo, se você quiser alterar itens de menu regulares para botões de menu coloridos, configure barras destacáveis e assim por diante.

A implementação padrão não faz nada.

CMDIFrameWndEx::OnSizeMDIClient

Chamado pela estrutura quando o tamanho da janela MDI do cliente está mudando.

virtual void OnSizeMDIClient(
    const CRect& rectOld,
    const CRect& rectNew);

Parâmetros

rectOld
[em] O tamanho atual da janela do cliente MDI.

rectNew
[em] O novo tamanho da janela do cliente MDI.

Observações

CMDIFrameWndEx::OnTearOffMenu

Chamado pela estrutura quando um menu que tem uma barra destacável é ativado.

virtual BOOL OnTearOffMenu(
    CMFCPopupMenu* pMenuPopup,
    CPane* pBar);

Parâmetros

pMenuPopup
[em] Um ponteiro para o menu pop-up.

pBar
[em] Um ponteiro para a barra destacável.

Valor de retorno

TRUE para permitir que o menu pop-up com a barra destacável seja ativado; caso contrário FALSE. A predefinição é TRUE.

Observações

Substitua essa função quando quiser implementar uma configuração especial para a barra destacável. A implementação padrão não faz nada.

CMDIFrameWndEx::OnUpdateFrameMenu

Chamado pela estrutura para atualizar o menu de quadros.

virtual void OnUpdateFrameMenu(HMENU hMenuAlt);

Parâmetros

hMenuAlt
[em] Uma alça para um menu.

CMDIFrameWndEx::PaneFromPoint

Retorna o painel de encaixe que contém o ponto especificado.

CBasePane* PaneFromPoint(
    CPoint point,
    int nSensitivity,
    bool bExactBar,
    CRuntimeClass* pRTCBarType) const;

CBasePane* PaneFromPoint(
    CPoint point,
    int nSensitivity,
    DWORD& dwAlignment,
    CRuntimeClass* pRTCBarType) const;

Parâmetros

point
[em] O ponto (em coordenadas de tela).

nSensitivity
[em] O retângulo da janela de cada painel verificado é ampliado em todas as direções por esse valor.

bExactBar
[em] Se TRUE, o nSensitivity parâmetro é ignorado.

pRTCBarType
[em] Se não- NULL, o método itera apenas sobre os painéis do tipo especificado.

dwAlignment
[saídas] Se um painel for encontrado, esse parâmetro especificará qual lado do painel está mais próximo do ponto especificado.

Valor de retorno

Um ponteiro para um painel de encaixe ou NULL , se nenhum controle contiver o ponto especificado por point.

Observações

A chamada é redirecionada para a CDockingManager turma. Para obter mais informações, consulte CDockingManager::ControlBarFromPoint.

CMDIFrameWndEx::RecalcLayout

Chamado pela estrutura para recalcular o layout da janela do quadro.

virtual void RecalcLayout(BOOL bNotify = TRUE);

Parâmetros

bNotify
[em] Determina se o item in-loco ativo para a janela de quadro recebe notificação da alteração de layout. Se TRUE, o item é notificado, caso contrário FALSE.

Observações

Este método substitui CFrameWnd::RecalcLayout.

CMDIFrameWndEx::RemovePaneFromDockManager

Cancela o registro de um painel e o remove do gerenciador de encaixe.

void RemovePaneFromDockManager(
    CBasePane* pControlBar,
    BOOL bDestroy,
    BOOL bAdjustLayout,
    BOOL bAutoHide,
    CBasePane* pBarReplacement);

Parâmetros

pControlBar
[em] Um ponteiro para um painel a ser removido.

bDestroy
[em] TRUE para destruir o painel removido. FALSE para não destruí-lo.

bAdjustLayout
[em] TRUE para ajustar o layout de encaixe imediatamente. Se FALSE, o ajuste ocorrerá apenas quando ocorrer um evento de redesenho por outros motivos (o usuário redimensiona a janela, arrasta o quadro principal, etc.).

bAutoHide
[em] TRUE para remover o painel da lista de painéis de ocultação automática. FALSE para remover o painel da lista de painéis regulares.

pBarReplacement
[em] Um ponteiro para um painel que substitui o painel removido.

Observações

Você deve registrar cada painel com o gerenciador de ancoragem para participar do layout de encaixe. Use CMDIFrameWndEx::AddPane ou CMDIFrameWndEx::InsertPane para registrar painéis.

Use esse método quando um painel não fizer mais parte do layout de encaixe da janela do quadro.

CMDIFrameWndEx::SaveMDIState

Salva o layout atual dos Grupos com guias MDI e a lista de documentos abertos anteriormente.

virtual BOOL SaveMDIState(LPCTSTR lpszProfileName);

Parâmetros

lpszProfileName
[em] Especifica o nome do perfil.

Valor de retorno

TRUE se a poupança foi bem sucedida; FALSE se a gravação falhou.

Observações

Para carregar ou salvar o estado de guias e grupos MDI e a lista de documentos abertos, faça o seguinte:

  • Chamada SaveMDIState quando o quadro principal está sendo fechado
  • Ligue CMDIFrameWndEx::LoadMDIState quando o quadro principal estiver sendo criado. O local recomendado para esta chamada é antes que o quadro principal seja exibido pela primeira vez.
  • Ligue CWinAppEx::EnableLoadWindowPlacement(FALSE); antes pMainFrame->LoadFrame (IDR_MAINFRAME);
  • Ligue CWinAppEx::ReloadWindowPlacement(pMainFrame) depois LoadMDIState para exibir o quadro principal na posição que foi armazenada no registro.
  • Substitua GetDocumentName na classe derivada CMDIChildWndEx- se seu aplicativo exibir documentos que não são armazenados como arquivos. A cadeia de caracteres retornada será salva no registro como um identificador de documento. Para obter mais informações, consulte CMDIChildWndEx::GetDocumentName.
  • Substitua CMDIFrameWndEx::CreateDocumentWindow para criar documentos corretamente quando eles são carregados do Registro. O parâmetro to CreateDocumentWindow é a cadeia de caracteres que GetDocumentName retornou anteriormente.

Exemplo

O exemplo a seguir mostra como SaveMDIState é usado no exemplo VisualStudioDemo: MFC Visual Studio Application.

void CMainFrame::OnClose()
{
   SaveMDIState(theApp.GetRegSectionPath());
   CMDIFrameWndEx::OnClose();
}

CMDIFrameWndEx::SetPrintPreviewFrame

Define a janela do quadro de visualização de impressão.

void SetPrintPreviewFrame(CFrameWnd* pWnd);

Parâmetros

pWnd
[em] Ponteiro para uma janela de quadro de visualização de impressão.

Observações

CMDIFrameWndEx::SetupToolbarMenu

Modifica um objeto da barra de ferramentas substituindo itens fictícios por itens definidos pelo usuário.

void SetupToolbarMenu(
    CMenu& menu,
    const UINT uiViewUserToolbarCmdFirst,
    const UINT uiViewUserToolbarCmdLast);

Parâmetros

menu
[em] Uma referência a um CMenu objeto de classe a ser modificado.

uiViewUserToolbarCmdFirst
[em] Especifica o primeiro comando definido pelo usuário.

uiViewUserToolbarCmdLast
[em] Especifica o último comando definido pelo usuário.

CMDIFrameWndEx::ShowFullScreen

Alterna o quadro principal do modo regular para o modo de tela cheia.

void ShowFullScreen();

Observações

CMDIFrameWndEx::ShowPane

Mostra ou oculta o painel especificado.

void ShowPane(
    CBasePane* pBar,
    BOOL bShow,
    BOOL bDelay,
    BOOL bActivate);

Parâmetros

pBar
[em] Ponteiro para o painel a ser mostrado ou oculto.

bShow
[em] TRUE para mostrar o painel. FALSE para ocultar o painel.

bDelay
[em] TRUE para atrasar o novo cálculo do layout de encaixe. FALSE para recalcular o layout de encaixe imediatamente.

bActivate
[em] TRUE para mostrar o painel como ativo. FALSE para mostrar o painel como inativo.

Observações

Chame esse método para mostrar ou ocultar o painel. Não use ShowWindow para painéis de encaixe.

Exemplo

O exemplo a seguir mostra como ShowPane é usado no exemplo VisualStudioDemo: MFC Visual Studio Application.

void COutputList1::OnViewOutput()
{
   CBasePane* pParentBar = DYNAMIC_DOWNCAST(CBasePane, GetOwner());
   CFrameWndEx* pMainFrame = DYNAMIC_DOWNCAST(CFrameWndEx, GetTopLevelFrame());

   if (pMainFrame != NULL && pParentBar != NULL)
   {
      pMainFrame->SetFocus();
      pMainFrame->ShowPane(pParentBar, FALSE, FALSE, FALSE);
   }
}

CMDIFrameWndEx::ShowWindowsDialog

Cria uma CMFCWindowsManagerDialog caixa e abre-a.

void ShowWindowsDialog();

Exemplo

O exemplo a seguir mostra como ShowWindowsDialog é usado no exemplo VisualStudioDemo: MFC Visual Studio Application.

void CMainFrame::OnWindowManager()
{
   ShowWindowsDialog();
}

CMDIFrameWndEx::TabbedDocumentToControlBar

Converte o documento com guias especificado em um painel de encaixe.

virtual BOOL TabbedDocumentToControlBar(CMDIChildWndEx* pMDIChildWnd);

Parâmetros

pMDIChildWnd
Um ponteiro para a janela filho MDI que contém um painel de encaixe.

Valor de retorno

TRUE se o método foi bem-sucedido, FALSE em caso de falha.

Observações

Use esse método para converter um documento com guias em um painel de encaixe. O documento com guias deve ter sido criado usando CMDIFrameWndEx::ControlBarToTabbedDocumento .

Exemplo

O exemplo a seguir mostra como TabbedDocumentToControlBar é usado no exemplo VisualStudioDemo: MFC Visual Studio Application.

void CMainFrame::OnMdiTabbedDocument()
{
   CMDIChildWndEx* pMDIChild = DYNAMIC_DOWNCAST(CMDIChildWndEx, MDIGetActive());
   if (pMDIChild == NULL)
   {
      ASSERT(FALSE);
      return;
   }

   TabbedDocumentToControlBar(pMDIChild);
}

CMDIFrameWndEx::UpdateCaption

Chamado pela estrutura para atualizar a legenda do quadro da janela.

void UpdateCaption();

Observações

CMDIFrameWndEx::UpdateMDITabbedBarsIcons

Define o ícone para cada painel com guias MDI.

void UpdateMDITabbedBarsIcons();

CMDIFrameWndEx::WinHelp

Chamado pela estrutura para iniciar o aplicativo WinHelp ou ajuda de contexto.

virtual void WinHelp(
    DWORD dwData,
    UINT nCmd = HELP_CONTEXT);

Parâmetros

dwData
[em] Especifica os dados conforme necessário para o tipo de ajuda especificado pelo nCmd.

nCmd
[em] Especifica o tipo de ajuda solicitada. Para obter mais informações sobre os valores possíveis e como eles afetam o dwData parâmetro, consulte WinHelp.

Observações

Este método substitui o CWnd::WinHelp.

Ver também

Gráfico de Hierarquia
Aulas
CMDIFrameWnd Classe
CMDIChildWndEx Classe