Partilhar via


Classe CMFCOutlookBar

Observação

A biblioteca Microsoft Foundation Classes (MFC) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

Um painel separado com a aparência visual do Painel de Navegação no Microsoft Outlook 2000 ou Outlook 2003. O CMFCOutlookBar objeto contém um objeto CMFCOutlookBarTabCtrl e uma série de separadores. Os separadores podem ser objetos da classe CMFCOutlookBarPane ou CWndobjetos derivados de -. Para o utilizador, a barra do Outlook aparece como uma série de botões e uma área de visualização. Quando o utilizador clica num botão, é exibido o controlo correspondente ou painel de botões.

Sintaxe

class CMFCOutlookBar : public CBaseTabbedPane

Membros

Construtores Públicos

Nome Description
CMFCOutlookBar::CMFCOutlookBar Construtor padrão.
CMFCOutlookBar::~CMFCOutlookBar Destruidor.

Métodos Públicos

Nome Description
CMFCOutlookBar::PermitirDestruirPanelSeparadoEsvaziado Especifica se um painel vazio com aba pode ser destruído. (Sobrepõe CBaseTabbedPane::AlpermitoyDestroyEmptyTabbedPane.)
CMFCOutlookBar::CanAcceptPane Determina se outro painel pode ser acoplado ao painel da barra do Outlook. (Sobrepõe CDockablePane::CanAcceptPane.)
CMFCOutlookBar::CanSetCaptionTextToTabName Determina se a legenda do painel separado mostra o mesmo texto do separador ativo. (Sobrepõe CBaseTabbedPane::CanSetCaptionTextToTabName.)
CMFCOutlookBar::Create Cria o controlo da barra do Outlook.
CMFCOutlookBar::CreateCustomPage Cria um separador Outlook personalizado.
CMFCOutlookBar::CreateObject Usado pelo framework para criar uma instância dinâmica deste tipo de classe.
CMFCOutlookBar::D oesAllowDynInsertBefore Determina se um utilizador pode acoplar uma barra de controlo na borda exterior da barra do Outlook.
CMFCOutlookBar::FloatTab Faz flutuar um painel, mas só se o painel estiver atualmente num separador destacável. (Sobrepõe CBaseTabbedPane::FloatTab.)
CMFCOutlookBar::GetButtonsFont Devolve a fonte do texto nos botões da barra do Outlook.
CMFCOutlookBar::GetTabArea Devolve o tamanho e a posição das áreas de separadores na barra do Outlook. (Sobrepõe CBaseTabbedPane::GetTabArea.)
CMFCOutlookBar::GetThisClass Usado pelo framework para obter um ponteiro para o objeto CRuntimeClass associado a este tipo de classe.
CMFCOutlookBar::IsMode2003 Determina se o comportamento da barra do Outlook imita o do Microsoft Office Outlook 2003 (ver Observações).
CMFCOutlookBar::OnAfterAnimation Chamado por CMFCOutlookBarTabCtrl::SetActiveTab depois de o separador ativo ter sido definido usando animação.
CMFCOutlookBar::OnBeforeAnimation Chamado por CMFCOutlookBarTabCtrl::SetActiveTab antes de uma página de separador ser definida como o separador ativo usando animação.
CMFCOutlookBar::OnScroll É chamado pelo framework se a barra do Outlook está a descer para cima ou para baixo.
CMFCOutlookBar::RemoveCustomPage Remove um separador personalizado do Outlook na barra.
CMFCOutlookBar::SetButtonsFont Define a fonte do texto nos botões da barra do Outlook.
CMFCOutlookBar::SetMode2003 Especifica se o comportamento da barra do Outlook imita o do Outlook 2003 (ver Observações).

Observações

Para um exemplo de barra Outlook, veja o Exemplo OutlookDemo: MFC OutlookDemo Application.

Implementação da Barra do Outlook

Para usar o CMFCOutlookBar controlo na sua aplicação, siga estes passos:

  1. Incorporar um CMFCOutlookBar objeto na classe janela do quadro principal.

    class CMainFrame : public CMDIFrameWnd
    {
        // ...
        CMFCOutlookBar m_wndOutlookBar;
        CMFCOutlookBarPane m_wndOutlookPane;
        // ...
    };
    
  2. Ao processar a mensagem WM_CREATE no quadro principal, chame o método CMFCOutlookBar::Create para criar o controlo de separador da barra do Outlook.

    m_wndOutlookBar.Create (_T("Shortcuts"),
        this,
        CRect (0, 0, 100, 100),
        ID_VIEW_OUTLOOKBAR,
        WS_CHILD | WS_VISIBLE | CBRS_LEFT);
    
  3. Obtenha um ponteiro para o subjacente CMFCOutlookBarTabCtrl usando CBaseTabbedPane::GetUnderlyingWindow.

    CMFCOutlookBarTabCtrl* pOutlookBar = (CMFCOutlookBarTabCtrl*) m_wndOutlookBar.GetUnderlyingWindow ();
    
  4. Crie um objeto CMFCOutlookBarPane Class para cada separador que contenha botões.

    m_wndOutlookPane.Create(&m_wndOutlookBar,
        AFX_DEFAULT_TOOLBAR_STYLE,
        ID_OUTLOOK_PANE_GENERAL,
        AFX_CBRS_FLOAT | AFX_CBRS_RESIZE);
    
    // make the Outlook pane detachable (enable docking)
    m_wndOutlookPane.EnableDocking(CBRS_ALIGN_ANY);
    
    // add buttons
    m_wndOutlookPane.AddButton(theApp.LoadIcon (IDR_MAINFRAME),
        "About",
        ID_APP_ABOUT);
    
    m_wndOutlookPane.AddButton (theApp.LoadIcon (IDR_CUSTOM_OPEN_ICON),
        "Open",
        ID_FILE_OPEN);
    
  5. Chame CMFCOutlookBarTabCtrl::AddTab para adicionar cada novo separador. Defina o parâmetro bDetachable para FALSE para tornar uma página não destacável. Ou então usa o CMFCOutlookBarTabCtrl::AddControl para adicionar páginas destacáveis.

    pOutlookBar->AddTab (&m_wndOutlookPane, "General", (UINT) -1, TRUE);
    
  6. Para adicionar um CWndcontrolo derivado em (por exemplo, CMFCShellTreeCtrl Class) como separador, crie o controlo e chame CMFCOutlookBarTabCtrl::AddTab para o adicionar à barra do Outlook.

Observação

Deve usar IDs de controlo únicos para cada objeto CMFCOutlookBarPane Class e para cada CWndobjeto derivado de -.

Para adicionar ou eliminar dinamicamente novas páginas em tempo de execução, use CMFCOutlookBar::CreateCustomPage e CMFCOutlookBar::RemoveCustomPage.

Modo Outlook 2003

No modo Outlook 2003, os botões de tabulação estão posicionados na parte inferior do painel de barras do Outlook. Quando não há espaço suficiente para exibir os botões, estes são exibidos como ícones numa área semelhante a uma barra de ferramentas na parte inferior do painel.

Usa o CMFCOutlookBar::SetMode2003 para ativar o modo Outlook 2003. Use o CMFCOutlookBarTabCtrl::SetToolbarImageList para definir o bitmap que contém os ícones que são exibidos na parte inferior da barra do Outlook. Os ícones no bitmap devem ser ordenados por índice de tabulação.

Hierarquia de herança

CObject

CCmdTarget

CWnd

CBasePane

CPane

CDockablePane

CBaseTabbedPane

CMFCOutlookBar

Requerimentos

Cabeçalho: afxoutlookbar.h

CMFCOutlookBar::PermitirDestruirPanelSeparadoEsvaziado

Especifica se um painel vazio com aba pode ser destruído.

virtual BOOL AllowDestroyEmptyTabbedPane() const;

Valor de retorno

VERDADEIRO se um painel vazio com aba puder ser destruído; caso contrário, FALSO. A implementação padrão devolve sempre TRUE.

Observações

Se um painel vazio com separações não puder ser destruído, a estrutura esconde-o em vez disso.

CMFCOutlookBar::CanAcceptPane

Determina se outro painel pode ser acoplado ao painel da barra do Outlook.

virtual BOOL CanAcceptPane(const CBasePane* pBar) const;

Parâmetros

pBar
[dentro] Um apontador para outro painel que está a ser acoplado a este painel.

Valor de retorno

TRUE se outro painel puder ser acoplado ao painel da barra do Outlook; caso contrário, FALSO.

Observações

Se a barra do Outlook estiver em modo Outlook 2003, o docking não é suportado, por isso o valor de retorno é FALSO.

Se o parâmetro pBar for NULL, este método devolve FALSE.

Caso contrário, este método comporta-se como o método base CBasePane::CanAcceptPane, exceto que mesmo que a docking não esteja ativada, uma barra do Outlook pode ainda permitir que outra barra do Outlook seja acoplada sobre ela.

CMFCOutlookBar::CanSetCaptionTextToTabName

Determina se a legenda do painel separado mostra o mesmo texto que o separador ativo.

virtual BOOL CanSetCaptionTextToTabName() const;

Valor de retorno

TRUE se a legenda da janela da barra do Outlook for automaticamente definida para o texto do separador ativo; caso contrário, FALSO.

Observações

Use CBaseTabbedPane::EnableSetCaptionTextToTabName para ativar ou desativar esta funcionalidade.

No modo Outlook 2003, esta definição está sempre ativada.

CMFCOutlookBar::Create

Cria o controlo da barra do Outlook.

virtual BOOL Create(
    LPCTSTR lpszCaption,
    CWnd* pParentWnd,
    const RECT& rect,
    UINT nID,
    DWORD dwStyle,
    DWORD dwControlBarStyle=AFX_CBRS_RESIZE,
    CCreateContext* pContext=NULL);

Parâmetros

lpszLegenda
[dentro] Especifica a legenda da janela.

pParentWnd
[dentro] Especifica um ponteiro para uma janela parental. Não pode ser NULL.

retângulo
[dentro] Especifica o tamanho e a posição da barra do Outlook em pixels.

nID
[dentro] Especifica o ID do controlo. Deve ser distinto de outros IDs de controlo usados na aplicação.

dwStyle
[dentro] Especifica o estilo de barra de controlo desejado. Para valores possíveis, veja Estilos de Janela.

dwControlBarStyle
[dentro] Especifica os estilos especiais definidos pela biblioteca.

pContext
[dentro] Cria contexto.

Valor de retorno

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

Observações

Constroem um CMFCOutlookBar objeto em dois passos. Primeiro chama o construtor, e depois chama Create, que cria o controlo da barra do Outlook e o anexa ao CMFCOutlookBar objeto.

Consulte CBasePane::CreateEx para a lista dos estilos definidos pela biblioteca disponíveis a especificar pelo dwControlBarStyle.

Example

O exemplo seguinte demonstra como usar o Create método da CMFCOutlookBar classe. Este excerto de código faz parte do exemplo Outlook Multi Views.

CMFCOutlookBar m_wndShortcutsBar;
// int nInitialWidth
// CString strCaption
if (!m_wndShortcutsBar.Create(strCaption, this,
                              CRect(0, 0, nInitialWidth, nInitialWidth),
                              ID_VIEW_OUTLOOKBAR, WS_CHILD | WS_VISIBLE | CBRS_LEFT))
{
   TRACE0("Failed to create outlook bar\n");
   return FALSE; // fail to create
}

CMFCOutlookBar::CreateCustomPage

Cria um separador Outlook personalizado.

CMFCOutlookBarPane* CreateCustomPage(
    LPCTSTR lpszPageName,
    BOOL bActivatePage=TRUE,
    DWORD dwEnabledDocking=CBRS_ALIGN_ANY,
    BOOL bEnableTextLabels=TRUE);

Parâmetros

lpszPageName
[dentro] A etiqueta da página.

bActivatePage
[dentro] Se for VERDADEIRO, a página torna-se ativa na criação.

dwEnabledDocking
[dentro] Uma combinação de CBRS_ALIGN_ flags que especifica os lados de acoplamento ativados quando a página é desligada.

bEnableTextLabels
[dentro] Se TRUE, as etiquetas de texto estão ativadas para os botões que estão na página.

Valor de retorno

Um apontador para a página recém-criada, ou NULL caso a criação falhasse.

Observações

Use este método para permitir que os utilizadores criem páginas de barra Outlook personalizadas. Pode criar até 100 páginas por aplicação. Os IDs de controlo de página começam a partir de 0xF000. A criação falha se o número total de páginas de barras personalizadas do Outlook ultrapassar 100.

Usa o CMFCOutlookBar::RemoveCustomPage para apagar páginas personalizadas.

CMFCOutlookBar::D oesAllowDynInsertBefore

Especifica se um utilizador pode acoplar um painel na extremidade exterior da barra do Outlook.

DECLARE_MESSAGE_MAP virtual BOOL DoesAllowDynInsertBefore() const;

Valor de retorno

A implementação padrão devolve FALSE.

Observações

A framework chama o DoesAllowDynInsertBefore método quando procura um local para acoplar um painel dinâmico. Se a função devolver FALSE, a estrutura não permite o acoplamento de qualquer painel dinâmico nas extremidades exteriores do painel.

Normalmente, crias uma barra do Outlook como um controlo estático e não flutuante. Podes sobrescrever esta função numa classe derivada e devolver TRUE para alterar esse comportamento.

Observação

Como os painéis dinâmicos verificam o estado dos painéis estáticos acoplados ao acoplar, deves acoplar os painéis dinâmicos depois dos painéis estáticos sempre que possível.

CMFCOutlookBar::FloatTab

Flutua um vidro.

virtual BOOL FloatTab(
    CWnd* pBar,
    int nTabID,
    AFX_DOCK_METHOD dockMethod,
    BOOL bHide);

Parâmetros

pBar
[dentro] Um apontador para o vidro para flutuar.

nTabID
[dentro] O índice em base zero da aba para flutuar.

dockMethod
[dentro] Especifica o método a usar para fazer o painel flutuar. Para mais informações, consulte CBaseTabbedPane::FloatTab.

bHide
[dentro] VERDADEIRO para esconder o vidro antes de flutuar; caso contrário, FALSO. Ao contrário da versão base deste método, este parâmetro não tem um valor predefinido.

Valor de retorno

VERDADE se o vidro flutuasse; caso contrário, FALSO.

Observações

Este método é como o CBaseTabbedPane::FloatTab , exceto que não permite que a última aba restante num controlo da barra do Outlook flutue.

CMFCOutlookBar::GetButtonsFont

Devolve a fonte do texto nos separadores de botões da página da barra Outlook.

CFont* GetButtonsFont() const;

Valor de retorno

Um ponteiro para o objeto fonte que é usado para mostrar texto nos separadores dos botões da página da barra do Outlook.

Observações

Use esta função para recuperar a fonte que é usada para mostrar o texto nos separadores de botões da página do Outlook. Pode definir a fonte chamando CMFCOutlookBar::SetButtonsFont.

CMFCOutlookBar::GetTabArea

Determina o tamanho e a posição das áreas de separadores na barra do Outlook.

virtual void GetTabArea(
    CRect& rectTabAreaTop,
    CRect& rectTabAreaBottom) const;

Parâmetros

rectTabAreaTop
[fora] Contém o tamanho e a posição (nas coordenadas do cliente) da área superior do separador quando a função retorna.

rectTabAreaBottom
[fora] Contém o tamanho e a posição (nas coordenadas do cliente) da área inferior do separador quando a função retorna.

Observações

O framework chama este método para determinar o tipo de acoplamento ao painel alvo. Quando o framework determina que o utilizador arrasta o painel a ser acoplado sobre a área de separação do painel de destino, tenta adicionar o primeiro painel como um novo separador do painel de destino. Caso contrário, tenta acoplar o primeiro painel num lado apropriado do painel alvo. A estrutura cria um novo contentor com um slider para acomodar o painel adicional acoplado.

A implementação por defeito de GetTabArea devolve toda a área cliente da barra do Outlook se a barra do Outlook estiver estática; isto é, se a barra do Outlook não puder flutuar. Caso contrário, devolve a área que os botões da página ocupam no topo e na base do controlo da barra do Outlook.

Substitua este método na classe derivada de CMFCOutlookBar para alterar este comportamento.

CMFCOutlookBar::IsMode2003

Especifica se o comportamento da barra do Outlook imita o do Microsoft Office Outlook 2003.

BOOL IsMode2003() const;

Valor de retorno

Diferente de zero se a barra do Outlook estiver a correr em modo Microsoft Office 2003; caso contrário, 0.

Observações

Pode ativar este modo usando o CMFCOutlookBar::SetMode2003.

CMFCOutlookBar::OnAfterAnimation

Chamado por CMFCOutlookBarTabCtrl::SetActiveTab depois de o separador ativo ter sido definido usando animação.

virtual void OnAfterAnimation(int nPage);

Parâmetros

nPage
[dentro] O índice baseado em zero da página de separadores que foi ativada.

Observações

O efeito visual de definir o separador ativo depende de teres ou não ativado a animação. Para mais informações, consulte CMFCOutlookBarTabCtrl::EnableAnimation.

CMFCOutlookBar::OnBeforeAnimation

Chamado por CMFCOutlookBarTabCtrl::SetActiveTab antes de uma página de separador ser definida como o separador ativo usando animação.

virtual BOOL OnBeforeAnimation(int nPage);

Parâmetros

nPage
[dentro] O índice baseado em zero da página de separador que está prestes a ser ativada.

Valor de retorno

Retorna TRUE se a animação for usada na definição do novo separador ativo, ou FALSE se a animação for desativada.

Observações

CMFCOutlookBar::OnScroll

É chamado pelo framework se a barra do Outlook está a descer para cima ou para baixo.

virtual void OnScroll(BOOL bDown);

Parâmetros

bDown
[dentro] TRUE se a barra do Outlook estiver a descer, ou FALSE se estiver a subir.

Observações

CMFCOutlookBar::RemoveCustomPage

Remove uma página de separador Outlook personalizada.

BOOL RemoveCustomPage(
    UINT uiPage,
    CMFCOutlookBarTabCtrl* pTargetWnd);

Parâmetros

uiPage
[dentro] Índice zero da página na janela principal do Outlook.

pTargetWnd
[dentro] Aponta para a janela principal do Outlook.

Valor de retorno

Diferente de zero se a página personalizada tiver sido removida com sucesso; caso contrário, 0.

Observações

Chame esta função para apagar páginas personalizadas. Quando a página é removida, o seu ID de controlo é devolvido ao conjunto de IDs disponíveis.

Deve fornecer um ponteiro para o objeto CMFCOutlookBarTabCtrl Class onde atualmente reside a página a ser removida. Note que um utilizador pode mover páginas destacáveis entre diferentes barras do Outlook, mas a informação sobre uma página personalizada reside no objeto da barra do Outlook para o qual chamou CMFCOutlookBar::CreateCustomPage.

Use CBaseTabbedPane::GetUnderlyingWindow para obter um ponteiro para a janela do Outlook.

CMFCOutlookBar::SetButtonsFont

Define a fonte do texto nos botões da barra do Outlook.

void SetButtonsFont(
    CFont* pFont,
    BOOL bRedraw=TRUE);

Parâmetros

pFont
[dentro] Especifica a nova fonte.

bRedraw
[dentro] Se for VERDADEIRO, a barra do Outlook será redesenhada.

Observações

Use este método para definir uma fonte para o texto exibido nos botões da página do separador do Outlook.

CMFCOutlookBar::SetMode2003

Especifica se o comportamento da barra do Outlook imita o do Outlook 2003.

void SetMode2003(BOOL bMode2003=TRUE);

Parâmetros

bMode2003
[dentro] Se for TRUE, o modo Office 2003 está ativado.

Observações

Use esta função para ativar ou desativar o modo Office 2003. Neste modo, a barra do Outlook tem uma barra de ferramentas adicional com um botão de personalização. O comportamento da barra do Outlook está em conformidade com o comportamento da barra do Outlook no Microsoft Office 2003.

Por defeito, este modo está desativado.

Observação

Esta função deve ser chamada antes do CMFCOutlookBar::Create.

Consulte também

Gráfico de Hierarquia
Classes
Classe CBaseTabbedPane
Classe CMFCOutlookBarTabCtrl
CMFCOutlookBarPane Classe