Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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
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_LEFTCBRS_ALIGN_RIGHTCBRS_ALIGN_TOPCBRS_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::SaveMDIStatequando o quadro principal está sendo fechado - Ligue
CMDIFrameWndEx::LoadMDIStatequando o quadro principal estiver sendo criado. O local recomendado para esta chamada é antes que o quadro principal seja exibido pela primeira vez. AdicionarCWinAppEx::EnableLoadWindowPlacement(FALSE);antes depMainFrame->LoadFrame (IDR_MAINFRAME);. AdicioneCWinAppEx::ReloadWindowPlacement(pMainFrame);após a chamada paraLoadMDIStateexibir o quadro principal na posição que foi armazenada no registro. - Substitua
GetDocumentNamena classe derivadaCMDIChildWndEx- 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 deCMDIChildWndEx::GetDocumentNameretorna um valor obtido deCDocument::GetPathName. - Substitua
CMDIFrameWndEx::CreateDocumentWindowpara criar documentos corretamente quando eles estão sendo carregados do Registro. O primeiro parâmetro é a cadeia de caracteres queGetDocumentNameretornou.
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.
CMDIFrameWndEx::OnDrawMenuLogo
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
SaveMDIStatequando o quadro principal está sendo fechado - Ligue
CMDIFrameWndEx::LoadMDIStatequando 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);antespMainFrame->LoadFrame (IDR_MAINFRAME); - Ligue
CWinAppEx::ReloadWindowPlacement(pMainFrame)depoisLoadMDIStatepara exibir o quadro principal na posição que foi armazenada no registro. - Substitua
GetDocumentNamena classe derivadaCMDIChildWndEx- 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, consulteCMDIChildWndEx::GetDocumentName. - Substitua
CMDIFrameWndEx::CreateDocumentWindowpara criar documentos corretamente quando eles são carregados do Registro. O parâmetro toCreateDocumentWindowé a cadeia de caracteres queGetDocumentNameretornou 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