Classe CMFCOutlookBar
Um painel com guias com a aparência visual do Painel de Navegação no Microsoft Outlook 2000 ou no Outlook 2003. O objeto CMFCOutlookBar
contém um objeto da classe CMFCOutlookBarTabCtrl e uma série de guias. As guias podem ser objetos da classe CMFCOutlookBarPane ou objetos derivados de CWnd
. Para o usuário, a barra do Outlook aparece como uma série de botões e uma área de exibição. Quando o usuário clica em um botão, o controle correspondente ou o painel de botões é exibido.
Sintaxe
class CMFCOutlookBar : public CBaseTabbedPane
Membros
Construtores públicos
Nome | Descrição |
---|---|
CMFCOutlookBar::CMFCOutlookBar |
Construtor padrão. |
CMFCOutlookBar::~CMFCOutlookBar |
Destruidor. |
Métodos públicos
Nome | Descrição |
---|---|
CMFCOutlookBar::AllowDestroyEmptyTabbedPane | Especifica se um painel com guias vazio pode ser destruído. (Substitui CBaseTabbedPane::AllowDestroyEmptyTabbedPane.) |
CMFCOutlookBar::CanAcceptPane | Determina se outro painel pode ser encaixado no painel da barra do Outlook. (Substitui CDockablePane::CanAcceptPane.) |
CMFCOutlookBar::CanSetCaptionTextToTabName | Determina se a legenda do painel com guias exibe o mesmo texto que a guia ativa. (Substitui CBaseTabbedPane::CanSetCaptionTextToTabName.) |
CMFCOutlookBar::Create | Cria o controle de barras do Outlook. |
CMFCOutlookBar::CreateCustomPage | Cria uma guia de barra personalizada do Outlook. |
CMFCOutlookBar::CreateObject |
Usado pela estrutura para criar uma instância dinâmica desse tipo de classe. |
CMFCOutlookBar::DoesAllowDynInsertBefore | Determina se um usuário pode encaixar uma barra de controle na borda externa da barra do Outlook. |
CMFCOutlookBar::FloatTab | Faz com que um painel flutue, mas somente se, no momento, o painel residir em uma guia desanexável. (Substitui CBaseTabbedPane::FloatTab.) |
CMFCOutlookBar::GetButtonsFont | Retorna a fonte do texto nos botões da barra do Outlook. |
CMFCOutlookBar::GetTabArea | Retorna o tamanho e a posição das áreas de guia na barra do Outlook. (Substitui CBaseTabbedPane::GetTabArea.) |
CMFCOutlookBar::GetThisClass |
Usado pela estrutura para obter um ponteiro para o objeto CRuntimeClass associado a esse tipo de classe. |
CMFCOutlookBar::IsMode2003 | Determina se o comportamento da barra do Outlook imita o do Microsoft Office Outlook 2003 (consulte os Comentários). |
CMFCOutlookBar::OnAfterAnimation | Chamado por CMFCOutlookBarTabCtrl::SetActiveTab após a guia ativa ter sido definida usando animação. |
CMFCOutlookBar::OnBeforeAnimation | Chamado por CMFCOutlookBarTabCtrl::SetActiveTab antes que uma página de guia seja definida como a guia ativa usando animação. |
CMFCOutlookBar::OnScroll | Chamado pela estrutura se a barra do Outlook estiver rolando para cima ou para baixo. |
CMFCOutlookBar::RemoveCustomPage | Remove uma guia de barra personalizada do Outlook. |
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 (consulte os Comentários). |
Comentários
Para ver um exemplo de barra do Outlook, consulte o Exemplo OutlookDemo: aplicativo OutlookDemo do MFC.
Implementando a barra do Outlook
Para usar o controle CMFCOutlookBar
no aplicativo, siga estas etapas:
Insira um objeto
CMFCOutlookBar
na classe de janela de quadro principal.class CMainFrame : public CMDIFrameWnd { // ... CMFCOutlookBar m_wndOutlookBar; CMFCOutlookBarPane m_wndOutlookPane; // ... };
Ao processar a mensagem WM_CREATE no quadro principal, chame o método CMFCOutlookBar::Create para criar o controle de guia da barra do Outlook.
m_wndOutlookBar.Create (_T("Shortcuts"), this, CRect (0, 0, 100, 100), ID_VIEW_OUTLOOKBAR, WS_CHILD | WS_VISIBLE | CBRS_LEFT);
Obtenha um ponteiro para o
CMFCOutlookBarTabCtrl
subjacente usando CBaseTabbedPane::GetUnderlyingWindow.CMFCOutlookBarTabCtrl* pOutlookBar = (CMFCOutlookBarTabCtrl*) m_wndOutlookBar.GetUnderlyingWindow ();
Crie um objeto da classe CMFCOutlookBarPane para cada guia que contém 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);
Chame CMFCOutlookBarTabCtrl::AddTab para adicionar cada nova guia. Defina o parâmetro bDetachable como FALSE para tornar uma página não desanexável. Ou use CMFCOutlookBarTabCtrl::AddControl para adicionar páginas desanexáveis.
pOutlookBar->AddTab (&m_wndOutlookPane, "General", (UINT) -1, TRUE);
Para adicionar um controle derivado de
CWnd
(por exemplo, classe CMFCShellTreeCtrl) como uma guia, crie o controle e chame CMFCOutlookBarTabCtrl::AddTab para adicioná-lo à barra do Outlook.
Observação
Use IDs de controle exclusivas para cada objeto da classe CMFCOutlookBarPane e para cada objeto derivado de CWnd
.
Para adicionar ou excluir páginas dinamicamente no runtime, use CMFCOutlookBar::CreateCustomPage e CMFCOutlookBar::RemoveCustomPage.
Modo do Outlook 2003
No modo do Outlook 2003, os botões de guia são posicionados na parte inferior do painel da barra do Outlook. Quando não há espaço suficiente para exibir os botões, eles são exibidos como ícones em uma área semelhante a uma barra de ferramentas ao longo da parte inferior do painel.
Use CMFCOutlookBar::SetMode2003 para habilitar o modo do Outlook 2003. Use CMFCOutlookBarTabCtrl::SetToolbarImageList para definir o bitmap que contém os ícones exibidos na parte inferior da barra do Outlook. Os ícones no bitmap precisam ser ordenados segundo índice de guias.
Hierarquia de herança
Requisitos
Cabeçalho: afxoutlookbar.h
CMFCOutlookBar::AllowDestroyEmptyTabbedPane
Especifica se um painel com guias vazio pode ser destruído.
virtual BOOL AllowDestroyEmptyTabbedPane() const;
Valor de retorno
TRUE se um painel com guias vazio puder ser destruído; caso contrário, FALSE. A implementação padrão sempre retorna TRUE.
Comentários
Se um painel com guias vazio não puder ser destruído, a estrutura o ocultará.
CMFCOutlookBar::CanAcceptPane
Determina se outro painel pode ser encaixado no painel da barra do Outlook.
virtual BOOL CanAcceptPane(const CBasePane* pBar) const;
Parâmetros
pBar
[in] Um ponteiro para outro painel que está sendo encaixado neste.
Valor de retorno
TRUE se outro painel puder ser encaixado no painel da barra do Outlook; caso contrário, FALSE.
Comentários
Se a barra do Outlook estiver no modo Outlook 2003, o encaixe não terá suporte, portanto o valor retornado será FALSE.
Se o parâmetro pBar for NULL, o método retornará FALSE.
Caso contrário, o método se comportará como o método base CBasePane::CanAcceptPane, exceto pelo fato de que mesmo que o encaixe não esteja habilitado, uma barra do Outlook ainda poderá permitir que outra barra do Outlook seja encaixada sobre ela.
CMFCOutlookBar::CanSetCaptionTextToTabName
Determina se a legenda do painel com guias exibe o mesmo texto que a guia ativa.
virtual BOOL CanSetCaptionTextToTabName() const;
Valor de retorno
TRUE se a legenda da janela da barra do Outlook for configurada automaticamente como o texto da guia ativa; caso contrário, FALSE.
Comentários
Use CBaseTabbedPane::EnableSetCaptionTextToTabName para habilitar ou desabilitar essa funcionalidade.
No modo do Outlook 2003, essa configuração sempre está habilitada.
CMFCOutlookBar::Create
Cria o controle de barras 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
lpszCaption
[in] Especifica a legenda da janela.
pParentWnd
[in] Especifica um ponteiro para uma janela pai. Não pode ser NULL.
rect
[in] Especifica o tamanho e a posição da barra do Outlook em pixels.
Nid
[in] Especifica a ID do controle. Deve ser diferente de outras IDs de controle usadas no aplicativo.
dwStyle
[in] Especifica o estilo da barra de controle desejada. Para conhecer os valores possíveis, consulte Estilos de Janela.
dwControlBarStyle
[in] Especifica os estilos especiais definidos pela biblioteca.
pContext
[in] Criar contexto.
Valor de retorno
Um valor diferente de zero, se o método tiver êxito. Caso contrário, 0.
Comentários
Um objeto CMFCOutlookBar
é construído em duas etapas. Primeiro, chame o construtor, então chame Create
, que cria o controle da barra do Outlook e o anexa ao objeto CMFCOutlookBar
.
Consulte CBasePane::CreateEx para ver a lista de estilos definidos pela biblioteca disponíveis a serem especificados por dwControlBarStyle.
Exemplo
O exemplo a seguir demonstra como usar o método Create
da classe CMFCOutlookBar
. Esse snippet de código faz parte do exemplo com várias exibições do Outlook.
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 uma guia de barra personalizada do Outlook.
CMFCOutlookBarPane* CreateCustomPage(
LPCTSTR lpszPageName,
BOOL bActivatePage=TRUE,
DWORD dwEnabledDocking=CBRS_ALIGN_ANY,
BOOL bEnableTextLabels=TRUE);
Parâmetros
lpszPageName
[in] O rótulo da página.
bActivatePage
[in] Se for TRUE, a página ficará ativa após a criação.
dwEnabledDocking
[in] Uma combinação de sinalizadores CBRS_ALIGN_ que especifica os lados de encaixe habilitados quando a página é desanexada.
bEnableTextLabels
[in] Se for TRUE, os rótulos de texto serão habilitados para os botões que residem na página.
Valor de retorno
Um ponteiro para a página recém-criada ou NULL se a criação tiver falhado.
Comentários
Use esse método para permitir que os usuários criem páginas personalizadas de barras do Outlook. É possível criar até 100 páginas por aplicativo. As IDs de controle de página começam em 0xF000. A criação falhará se o número total de páginas personalizadas de barras do Outlook ultrapassar 100.
Use CMFCOutlookBar::RemoveCustomPage para excluir páginas personalizadas.
CMFCOutlookBar::DoesAllowDynInsertBefore
Especifica se um usuário pode encaixar um painel na borda externa da barra do Outlook.
DECLARE_MESSAGE_MAP virtual BOOL DoesAllowDynInsertBefore() const;
Valor de retorno
A implementação padrão retorna FALSE.
Comentários
A estrutura chama o método DoesAllowDynInsertBefore
quando procura um local para encaixar um painel dinâmico. Se a função retornar FALSE, a estrutura não permitirá o encaixe de nenhum painel dinâmico nas bordas externas do painel.
Normalmente, você cria uma barra do Outlook como um controle estático não flutuante. Você pode substituir a função em uma classe derivada e retornar TRUE para alterar esse comportamento.
Observação
Como os painéis dinâmicos verificam o status dos painéis estáticos encaixados ao encaixar, encaixe os painéis dinâmicos após os painéis estáticos sempre que possível.
CMFCOutlookBar::FloatTab
Faz com que um painel flutue.
virtual BOOL FloatTab(
CWnd* pBar,
int nTabID,
AFX_DOCK_METHOD dockMethod,
BOOL bHide);
Parâmetros
pBar
[in] Um ponteiro para o painel que deve flutuar.
nTabID
[in] O índice baseado em zero da guia que deve flutuar.
dockMethod
[in] Especifica o método a ser usado para fazer o painel flutuar. Para obter mais informações, consulte CBaseTabbedPane::FloatTab.
bHide
[in] TRUE para ocultar o painel antes de flutuar; caso contrário, FALSE. Diferente da versão da classe base desse método, o parâmetro não tem um valor padrão.
Valor de retorno
TRUE se o painel flutuou; caso contrário, FALSE.
Comentários
Esse método é como CBaseTabbedPane::FloatTab, exceto pelo fato de que não permite que a última guia restante em um controle de barra do Outlook flutue.
CMFCOutlookBar::GetButtonsFont
Retorna a fonte do texto nas guias de botão da página da barra do Outlook.
CFont* GetButtonsFont() const;
Valor de retorno
Um ponteiro para o objeto de fonte usado para exibir texto nas guias de botão da página da barra do Outlook.
Comentários
Use essa função para recuperar a fonte usada para exibir o texto nas guias do botão da página do Outlook. Você pode definir a fonte chamando CMFCOutlookBar::SetButtonsFont.
CMFCOutlookBar::GetTabArea
Determina o tamanho e a posição das áreas de guia na barra do Outlook.
virtual void GetTabArea(
CRect& rectTabAreaTop,
CRect& rectTabAreaBottom) const;
Parâmetros
rectTabAreaTop
[out] Contém o tamanho e a posição (nas coordenadas de cliente) da área da guia superior quando a função é retornada.
rectTabAreaBottom
[out] Contém o tamanho e a posição (nas coordenadas de cliente) da área da guia inferior quando a função é retornada.
Comentários
A estrutura chama esse método para determinar o tipo de encaixe no painel de destino. Quando a estrutura determina que o usuário arraste o painel a ser encaixado sobre a área da guia do painel de destino, ela tenta adicionar o primeiro painel como uma nova guia do painel de destino. Caso contrário, ela tentará encaixar o primeiro painel em um lado apropriado do painel de destino. A estrutura cria um contêiner com um controle deslizante para acomodar o painel encaixado adicional.
A implementação padrão de GetTabArea
retornará toda a área de cliente da barra do Outlook se a barra for estática, ou seja, se ela não puder flutuar. Caso contrário, retornará a área que os botões de página ocupam nas partes superior e inferior do controle da barra do Outlook.
Substitua esse método na classe derivada de CMFCOutlookBar
para alterar esse 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 em execução no modo do Microsoft Office 2003; caso contrário, 0.
Comentários
Habilite esse modo usando CMFCOutlookBar::SetMode2003.
CMFCOutlookBar::OnAfterAnimation
Chamado por CMFCOutlookBarTabCtrl::SetActiveTab após a guia ativa ter sido definida usando animação.
virtual void OnAfterAnimation(int nPage);
Parâmetros
nPage
[in] O índice baseado em zero da página da guia que ficou ativa.
Comentários
O efeito visual da definição da guia ativa depende de você ter habilitado a animação. Para obter mais informações, consulte CMFCOutlookBarTabCtrl::EnableAnimation.
CMFCOutlookBar::OnBeforeAnimation
Chamado por CMFCOutlookBarTabCtrl::SetActiveTab antes que uma página de guia seja definida como a guia ativa usando animação.
virtual BOOL OnBeforeAnimation(int nPage);
Parâmetros
nPage
[in] O índice baseado em zero da página da guia que está prestes a ser definida como ativa.
Valor de retorno
Retornará TRUE se a animação for usada na configuração da nova guia ativa ou FALSE se for desabilitada.
Comentários
CMFCOutlookBar::OnScroll
Chamado pela estrutura se a barra do Outlook estiver rolando para cima ou para baixo.
virtual void OnScroll(BOOL bDown);
Parâmetros
bDown
[in] TRUE se a barra do Outlook estiver rolando para baixo ou FALSE se estiver rolando para cima.
Comentários
CMFCOutlookBar::RemoveCustomPage
Remove uma página da guia da barra personalizada do Outlook.
BOOL RemoveCustomPage(
UINT uiPage,
CMFCOutlookBarTabCtrl* pTargetWnd);
Parâmetros
uiPage
[in] Índice baseado em zero da página na janela pai do Outlook.
pTargetWnd
[in] Ponteiro para a janela pai do Outlook.
Valor de retorno
Diferente de zero se a página personalizada tiver sido removida com êxito; caso contrário, 0.
Comentários
Chame essa função para excluir páginas personalizadas. Quando a página é removida, a ID de controle é retornada para o pool de IDs disponíveis.
Forneça um ponteiro para o objeto de classe CMFCOutlookBarTabCtrl no qual a página a ser removida reside. Observe que um usuário pode mover páginas desanexáveis entre diferentes barras do Outlook, mas as informações sobre uma página personalizada residem no objeto da barra do Outlook para o qual você 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
[in] Especifica a nova fonte.
bRedraw
[in] Se TRUE, a barra do Outlook será redesenhada.
Comentários
Use esse método para definir uma fonte para o texto exibido nos botões da página da guia 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
[in] Se TRUE, o modo do Office 2003 será habilitado.
Comentários
Use essa função para habilitar ou desabilitar o modo do Office 2003. Nesse modo, a barra do Outlook tem uma barra de ferramentas adicional com um botão de personalização. O comportamento da barra do Outlook segue o comportamento da barra do Outlook no Microsoft Office 2003.
Por padrão, esse modo fica desabilitado.
Observação
Essa função deve ser chamada antes de CMFCOutlookBar::Create.
Confira também
Gráfico da hierarquia
Classes
Classe CBaseTabbedPane
Classe CMFCOutlookBarTabCtrl
Classe CMFCOutlookBarPane