CMFCOutlookBar (clase)
Un panel con pestañas con el aspecto visual del Panel de navegación en Microsoft Outlook 2000 u Outlook 2003. El objeto CMFCOutlookBar
contiene un objeto de clase CMFCOutlookBarTabCtrl y una serie de fichas. Las fichas pueden ser objetos de clase CMFCOutlookBarPane u objetos derivados de CWnd
. Para el usuario, la barra de Outlook aparece como una serie de botones y un área de presentación. Cuando el usuario hace clic en un botón, se muestra el panel de control o botón correspondiente .
Sintaxis
class CMFCOutlookBar : public CBaseTabbedPane
Miembros
Constructores públicos
Nombre | Descripción |
---|---|
CMFCOutlookBar::CMFCOutlookBar |
Constructor predeterminado. |
CMFCOutlookBar::~CMFCOutlookBar |
Destructor. |
Métodos públicos
Nombre | Descripción |
---|---|
CMFCOutlookBar::AllowDestroyEmptyTabbedPane | Especifica si se puede destruir un panel con fichas vacío. (Invalida CBaseTabbedPane::AllowDestroyEmptyTabbedPane). |
CMFCOutlookBar::CanAcceptPane | Determina si se puede acoplar otro panel al panel de la barra de Outlook. (Invalida CDockablePane::CanAcceptPane). |
CMFCOutlookBar::CanSetCaptionTextToTabName | Determina si en el título del panel con fichas se muestra el mismo texto que en la ficha activa. (Invalida CBaseTabbedPane::CanSetCaptionTextToTabName). |
CMFCOutlookBar::Create | Crea el control de la barra de Outlook. |
CMFCOutlookBar::CreateCustomPage | Crea una ficha personalizada de la barra de Outlook. |
CMFCOutlookBar::CreateObject |
Usado por el marco de trabajo para crear una instancia dinámica de este tipo de clase. |
CMFCOutlookBar::DoesAllowDynInsertBefore | Determina si un usuario puede acoplar una barra de control en el borde exterior de la barra de Outlook. |
CMFCOutlookBar::FloatTab | Convierte un panel en flotante, pero solo si se encuentra actualmente en una pestaña desasociable. (Invalida a CBaseTabbedPane::FloatTab). |
CMFCOutlookBar::GetButtonsFont | Devuelve la fuente del texto en los botones de la barra de Outlook. |
CMFCOutlookBar::GetTabArea | Devuelve el tamaño y la posición de las áreas de fichas de la barra de Outlook. (Invalida CBaseTabbedPane::GetTabArea). |
CMFCOutlookBar::GetThisClass |
Lo usa el marco para obtener un puntero al objeto CRuntimeClass asociado a este tipo de clase. |
CMFCOutlookBar::IsMode2003 | Determina si el comportamiento de la barra de Outlook imita al de Microsoft Office Outlook 2003 (vea Comentarios). |
CMFCOutlookBar::OnAfterAnimation | Lo llama CMFCOutlookBarTabCtrl::SetActiveTab después de establecer la ficha activa mediante animación. |
CMFCOutlookBar::OnBeforeAnimation | Lo llama CMFCOutlookBarTabCtrl::SetActiveTab antes de establecer una ficha como la ficha activa mediante animación. |
CMFCOutlookBar::OnScroll | Lo llama el marco si la barra de Outlook se desplaza hacia arriba o hacia abajo. |
CMFCOutlookBar::RemoveCustomPage | Quita una ficha personalizada de la barra de Outlook. |
CMFCOutlookBar::SetButtonsFont | Establece la fuente del texto en los botones de la barra de Outlook. |
CMFCOutlookBar::SetMode2003 | Especifica si el comportamiento de la barra de Outlook imita al de Outlook 2003 (vea Comentarios). |
Comentarios
Para un ejemplo de una barra de Outlook, vea Ejemplo de OutlookDemo: aplicación OutlookDemo de MFC.
Implementación de la barra de Outlook
Para usar el control CMFCOutlookBar
de la aplicación, siga estos pasos:
Incruste un objeto
CMFCOutlookBar
en la clase de ventana de marco principal.class CMainFrame : public CMDIFrameWnd { // ... CMFCOutlookBar m_wndOutlookBar; CMFCOutlookBarPane m_wndOutlookPane; // ... };
Al procesar el mensaje WM_CREATE en el marco principal, llame al método CMFCOutlookBar::Create para crear el control de ficha de la barra de Outlook.
m_wndOutlookBar.Create (_T("Shortcuts"), this, CRect (0, 0, 100, 100), ID_VIEW_OUTLOOKBAR, WS_CHILD | WS_VISIBLE | CBRS_LEFT);
Obtenga un puntero al elemento
CMFCOutlookBarTabCtrl
subyacente mediante CBaseTabbedPane::GetUnderlyingWindow.CMFCOutlookBarTabCtrl* pOutlookBar = (CMFCOutlookBarTabCtrl*) m_wndOutlookBar.GetUnderlyingWindow ();
Cree un objeto CMFCOutlookBarPane Class para cada ficha que contenga botones.
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);
Llame a CMFCOutlookBarTabCtrl::AddTab para agregar cada nueva ficha. Establezca el parámetro bDetachable en FALSE para que una página no se pueda desasociar. O bien, use CMFCOutlookBarTabCtrl::AddControl para agregar páginas desasociables.
pOutlookBar->AddTab (&m_wndOutlookPane, "General", (UINT) -1, TRUE);
Para agregar un control derivado de
CWnd
(por ejemplo, CMFCShellTreeCtrl Class) como ficha, cree el control y llame a CMFCOutlookBarTabCtrl::AddTab para agregarlo a la barra de Outlook.
Nota:
Debe usar id. de control únicos para cada objeto CMFCOutlookBarPane Class y para cada objeto derivado de CWnd
.
Para agregar o eliminar páginas nuevas dinámicamente en tiempo de ejecución, use CMFCOutlookBar::CreateCustomPage y CMFCOutlookBar::RemoveCustomPage.
Modo de Outlook 2003
En el modo Outlook 2003, los botones de ficha se colocan en la parte inferior del panel de la barra de Outlook. Cuando no hay espacio suficiente para mostrar los botones, se muestran como iconos en un área similar a una barra de herramientas a lo largo de la parte inferior del panel.
Use CMFCOutlookBar::SetMode2003 para habilitar el modo de Outlook 2003. Use CMFCOutlookBarTabCtrl::SetToolbarImageList para establecer el mapa de bits que contiene los iconos que se muestran en la parte inferior de la barra de Outlook. Los iconos del mapa de bits deben ordenarse por el índice de ficha.
Jerarquía de herencia
Requisitos
Encabezado: afxoutlookbar.h
CMFCOutlookBar::AllowDestroyEmptyTabbedPane
Especifica si se puede destruir un panel con fichas vacío.
virtual BOOL AllowDestroyEmptyTabbedPane() const;
Valor devuelto
Es TRUE si se puede destruir un panel con fichas vacío; de lo contrario, es FALSE. La implementación predeterminada siempre devuelve TRUE.
Comentarios
Si no se puede destruir un panel con fichas vacío, el marco lo oculta en su lugar.
CMFCOutlookBar::CanAcceptPane
Determina si se puede acoplar otro panel al panel de la barra de Outlook.
virtual BOOL CanAcceptPane(const CBasePane* pBar) const;
Parámetros
pBar
[in] Puntero a otro panel que se está acoplando a este panel.
Valor devuelto
TRUE si se puede acoplar otro panel al panel de la barra de Outlook; en caso contrario, FALSE.
Comentarios
Si la barra de Outlook está en modo de Outlook 2003, no se admite el acoplamiento, por lo que el valor devuelto es FALSE.
Si el parámetro pBar es NULL, este método devuelve FALSE.
De lo contrario, este método se comporta como el método base CBasePane::CanAcceptPane, salvo que aunque no esté habilitado el acoplamiento, una barra de Outlook aún pueda permitir que se acople otra barra de Outlook.
CMFCOutlookBar::CanSetCaptionTextToTabName
Determina si el título del panel con fichas muestra el mismo texto que la ficha activa.
virtual BOOL CanSetCaptionTextToTabName() const;
Valor devuelto
TRUE si el título de la ventana de la barra de Outlook se establece automáticamente en el texto de la ficha activa; en caso contrario, FALSE.
Comentarios
Use CBaseTabbedPane::EnableSetCaptionTextToTabName para habilitar o deshabilitar esta funcionalidad.
En el modo de Outlook 2003, esta configuración siempre está habilitada.
CMFCOutlookBar::Create
Crea el control de la barra de 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 el título de la ventana.
pParentWnd
[in] Especifica un puntero a una ventana primaria. No debe ser NULL.
rect
[in] Especifica el tamaño y la posición de la barra de Outlook en píxeles.
Nid
[in] Especifica el id. de control. Debe ser distinto de los demás id. de control usados en la aplicación.
dwStyle
[in] Especifica el estilo de barra de control deseado. Para los valores posibles, consulte Estilos de ventana.
dwControlBarStyle
[in] Especifica los estilos especiales definidos por la biblioteca.
pContext
[in] Crea un contexto.
Valor devuelto
Distinto de cero si el método es correcto; en caso contrario, 0.
Comentarios
El objeto CMFCOutlookBar
se construye en dos pasos. En primer lugar, llame al constructor y, luego, a Create
, lo que crea el control de barra de Outlook y lo asocia al objeto CMFCOutlookBar
.
Consulte CBasePane::CreateEx para obtener la lista de los estilos definidos por la biblioteca disponibles que dwControlBarStyle debe especificar.
Ejemplo
En el siguiente ejemplo se muestra cómo se utiliza el método Create
de la clase CMFCOutlookBar
. Este fragmento de código forma parte del ejemplo de varias vistas de 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
Crea una ficha personalizada de la barra de Outlook.
CMFCOutlookBarPane* CreateCustomPage(
LPCTSTR lpszPageName,
BOOL bActivatePage=TRUE,
DWORD dwEnabledDocking=CBRS_ALIGN_ANY,
BOOL bEnableTextLabels=TRUE);
Parámetros
lpszPageName
[in] Etiqueta de página.
bActivatePage
[in] Si es TRUE, la página se activa en la creación.
dwEnabledDocking
[in] Combinación de marcas de CBRS_ALIGN_ que especifica los lados de acoplamiento habilitados cuando se desasocia la página.
bEnableTextLabels
[in] Si es TRUE, las etiquetas de texto están habilitadas para los botones que residen en la página.
Valor devuelto
Puntero a la página recién creada o NULL si se produjo un error en la creación.
Comentarios
Use este método para permitir que los usuarios creen páginas personalizadas de la barra de Outlook. Puede crear hasta 100 páginas por aplicación. Los id. de control de página comienzan a partir de 0xF000. Se produce un error en la creación si el número total de páginas personalizadas de la barra de Outlook supera las 100.
Use CMFCOutlookBar::RemoveCustomPage para eliminar páginas personalizadas.
CMFCOutlookBar::DoesAllowDynInsertBefore
Especifica si un usuario puede acoplar un panel en el borde exterior de la barra de Outlook.
DECLARE_MESSAGE_MAP virtual BOOL DoesAllowDynInsertBefore() const;
Valor devuelto
La implementación predeterminada devuelve FALSE.
Comentarios
El marco llama al método DoesAllowDynInsertBefore
cuando busca una ubicación para acoplar un panel dinámico. Si la función devuelve FALSE, el marco no permite el acoplamiento de ningún panel dinámico en los bordes exteriores del panel.
Normalmente, se crea una barra de Outlook como un control estático no flotante. Puede invalidar esta función en una clase derivada y devolver TRUE para cambiar este comportamiento.
Nota:
Dado que los paneles dinámicos comprueban el estado de los paneles estáticos acoplados al acoplarse, debe acoplar los paneles dinámicos después de los paneles estáticos siempre que sea posible.
CMFCOutlookBar::FloatTab
Hace que un panel sea flotante.
virtual BOOL FloatTab(
CWnd* pBar,
int nTabID,
AFX_DOCK_METHOD dockMethod,
BOOL bHide);
Parámetros
pBar
[in] Puntero al panel que va a ser flotante.
nTabID
[in] Índice de base cero de la ficha que va a ser flotante.
dockMethod
[in] Especifica el método que se va a usar para que el panel sea flotante. Para más información, vea CBaseTabbedPane::FloatTab.
bHide
[in] Es TRUE para ocultar el panel antes de que sea flotante; de lo contrario, es FALSE. A diferencia de la versión de clase base de este método, este parámetro no tiene un valor predeterminado.
Valor devuelto
Es TRUE si el panel es flotante; de lo contrario, es FALSE.
Comentarios
Este método es como CBaseTabbedPane::FloatTab, salvo que no habilita la última ficha que queda en un control de barra de Outlook para que flote.
CMFCOutlookBar::GetButtonsFont
Devuelve la fuente del texto en las fichas de botón de página de la barra de Outlook.
CFont* GetButtonsFont() const;
Valor devuelto
Puntero al objeto de fuente que se usa para mostrar texto en fichas de botón de página de la barra de Outlook.
Comentarios
Use esta función para recuperar la fuente que se usa para mostrar el texto en las fichas de botón de página de Outlook. Puede establecer la fuente llamando a en CMFCOutlookBar::SetButtonsFont.
CMFCOutlookBar::GetTabArea
Determina el tamaño y la posición de las áreas de fichas de la barra de Outlook.
virtual void GetTabArea(
CRect& rectTabAreaTop,
CRect& rectTabAreaBottom) const;
Parámetros
rectTabAreaTop
[out] Contiene el tamaño y la posición (en las coordenadas del cliente) del área de fichas superior cuando se devuelve la función.
rectTabAreaBottom
[out] Contiene el tamaño y la posición (en las coordenadas del cliente) del área de fichas inferior cuando se devuelve la función.
Comentarios
El marco llama a este método para determinar el tipo de acoplamiento en el panel de destino. Cuando el marco determina que el usuario arrastra el panel que se va a acoplar sobre el área de fichas del panel de destino, intenta agregar el primer panel como una nueva ficha del panel de destino. De lo contrario, intenta acoplar el primer panel en un lado adecuado del panel de destino. El marco crea un nuevo contenedor con un control deslizante para dar cabida al panel acoplado adicional.
La implementación predeterminada de GetTabArea
devuelve el área de cliente completa de la barra de Outlook si la barra de Outlook es estática; es decir, si la barra de Outlook no puede flotar. De lo contrario, devuelve el área que ocupan los botones de página en la parte superior e inferior del control de barra de Outlook.
Invalide este método en la clase derivada de CMFCOutlookBar
para cambiar este comportamiento.
CMFCOutlookBar::IsMode2003
Especifica si el comportamiento de la barra de Outlook imita al de Microsoft Office Outlook 2003.
BOOL IsMode2003() const;
Valor devuelto
Distinto de cero si la barra de Outlook se ejecuta en modo de Microsoft Office 2003; de lo contrario, 0.
Comentarios
Puede habilitar este modo mediante CMFCOutlookBar::SetMode2003.
CMFCOutlookBar::OnAfterAnimation
Lo llama CMFCOutlookBarTabCtrl::SetActiveTab después de establecer la ficha activa mediante animación.
virtual void OnAfterAnimation(int nPage);
Parámetros
nPage
[in] Índice de base cero de la ficha que se ha activado.
Comentarios
El efecto visual de establecer la pestaña activa depende de si ha habilitado la animación. Para más información, vea CMFCOutlookBarTabCtrl::EnableAnimation.
CMFCOutlookBar::OnBeforeAnimation
Lo llama CMFCOutlookBarTabCtrl::SetActiveTab antes de establecer una ficha como la ficha activa mediante animación.
virtual BOOL OnBeforeAnimation(int nPage);
Parámetros
nPage
[in] Índice de base cero de la ficha que está a punto de activarse.
Valor devuelto
Devuelve TRUE si se debe usar la animación al establecer la nueva ficha activa o FALSE si se debe deshabilitar la animación.
Comentarios
CMFCOutlookBar::OnScroll
Lo llama el marco si la barra de Outlook se desplaza hacia arriba o hacia abajo.
virtual void OnScroll(BOOL bDown);
Parámetros
bDown
[in] TRUE si la barra de Outlook se desplaza hacia abajo o FALSE si se desplaza hacia arriba.
Comentarios
CMFCOutlookBar::RemoveCustomPage
Quita una ficha personalizada de la barra de Outlook.
BOOL RemoveCustomPage(
UINT uiPage,
CMFCOutlookBarTabCtrl* pTargetWnd);
Parámetros
uiPage
[in] Índice de base cero de la página en la ventana primaria de Outlook.
pTargetWnd
[in] Puntero a la ventana primaria de Outlook.
Valor devuelto
Distinto de cero si la página personalizada se ha quitado correctamente; de lo contrario, 0.
Comentarios
Llame a esta función para eliminar páginas personalizadas. Cuando se quita la página, se devuelve su id. de control al grupo de id. disponibles.
Debe proporcionar un puntero al objeto CMFCOutlookBarTabCtrl Class en el que reside actualmente la página que se va a quitar. Tenga en cuenta que un usuario puede mover páginas desasociables entre diferentes barras de Outlook, pero la información sobre una página personalizada reside en el objeto de barra de Outlook para el que ha llamado CMFCOutlookBar::CreateCustomPage.
Use CBaseTabbedPane::GetUnderlyingWindow para obtener un puntero a la ventana de Outlook.
CMFCOutlookBar::SetButtonsFont
Establece la fuente del texto en los botones de la barra de Outlook.
void SetButtonsFont(
CFont* pFont,
BOOL bRedraw=TRUE);
Parámetros
pFont
[in] Especifica la nueva fuente.
bRedraw
[in] Si es TRUE, se volverá a dibujar la barra de Outlook.
Comentarios
Use este método para establecer una fuente para el texto que se muestra en los botones de ficha de Outlook.
CMFCOutlookBar::SetMode2003
Especifica si el comportamiento de la barra de Outlook imita al de Outlook 2003.
void SetMode2003(BOOL bMode2003=TRUE);
Parámetros
bMode2003
[in] Si es TRUE, el modo de Office 2003 está habilitado.
Comentarios
Use esta función para habilitar o deshabilitar el modo de Office 2003. En este modo, la barra de Outlook tiene una barra de herramientas adicional con un botón de personalización. El comportamiento de la barra de Outlook se ajusta al comportamiento de la barra de Outlook en Microsoft Office 2003.
Este modo está deshabilitado de forma predeterminada.
Nota:
Se debe llamar a esta función antes de CMFCOutlookBar::Create.
Consulte también
Gráfico de jerarquías
Clases
CBaseTabbedPane (clase)
CMFCOutlookBarTabCtrl (clase)
CMFCOutlookBarPane (clase)