Condividi tramite


Classe CMFCOutlookBar

Riquadro a schede che presenta l'aspetto visivo del Riquadro di navigazione di Microsoft Outlook 2000 o Outlook 2003. L'oggetto CMFCOutlookBar contiene un oggetto Classe CMFCOutlookBarTabCtrl e una serie di schede. Le schede possono essere oggetti classe CMFCOutlookBarPane o CWndoggetti derivati da . All'utente la barra di Outlook viene visualizzata come una serie di pulsanti e un'area di visualizzazione. Quando l'utente fa clic su un pulsante, viene visualizzato il controllo o il riquadro del pulsante corrispondente.

Sintassi

class CMFCOutlookBar : public CBaseTabbedPane

Membri

Costruttori pubblici

Nome Descrizione
CMFCOutlookBar::CMFCOutlookBar Costruttore predefinito.
CMFCOutlookBar::~CMFCOutlookBar Distruttore.

Metodi pubblici

Nome Descrizione
CMFCOutlookBar::AllowDestroyEmptyTabbedPane Specifica se un riquadro a schede vuoto può essere eliminato definitivamente. (sostituzioni )CBaseTabbedPane::AllowDestroyEmptyTabbedPane.
CMFCOutlookBar::CanAcceptPane Determina se è possibile ancorare un altro riquadro al riquadro della barra di Outlook. Esegue l'override di CDockablePane::CanAcceptPane.
CMFCOutlookBar::CanSetCaptionTextToTabName Determina se il didascalia per il riquadro a schede visualizza lo stesso testo della scheda attiva. Esegue l'override di CBaseTabbedPane::CanSetCaptionTextToTabName.
CMFCOutlookBar::Create Crea il controllo barra di Outlook.
CMFCOutlookBar::CreateCustomPage Crea una scheda personalizzata della barra di Outlook.
CMFCOutlookBar::CreateObject Usato dal framework per creare un'istanza dinamica di questo tipo di classe.
CMFCOutlookBar::D oesAllowDynInsertBefore Determina se un utente può ancorare una barra di controllo al bordo esterno della barra di Outlook.
CMFCOutlookBar::FloatTab Sposta un riquadro, ma solo se il riquadro si trova attualmente in una scheda scollegabile. Esegue l'override di CBaseTabbedPane::FloatTab.
CMFCOutlookBar::GetButtonsFont Restituisce il tipo di carattere del testo sui pulsanti della barra di Outlook.
CMFCOutlookBar::GetTabArea Restituisce le dimensioni e la posizione delle aree della scheda sulla barra di Outlook. (sostituzioni )CBaseTabbedPane::GetTabArea.
CMFCOutlookBar::GetThisClass Usato dal framework per ottenere un puntatore all'oggetto CRuntimeClass associato a questo tipo di classe.
CMFCOutlookBar::IsMode2003 Determina se il comportamento della barra di Outlook simula quello di Microsoft Office Outlook 2003 (vedere Osservazioni).
CMFCOutlookBar::OnAfterAnimation Chiamato da CMFCOutlookBarTabCtrl::SetActiveTab dopo che la scheda attiva è stata impostata usando l'animazione.
CMFCOutlookBar::OnBeforeAnimation Chiamato da CMFCOutlookBarTabCtrl::SetActiveTab prima che una pagina di tabulazione venga impostata come scheda attiva usando l'animazione.
CMFCOutlookBar::OnScroll Chiamato dal framework se la barra di Outlook scorre verso l'alto o verso il basso.
CMFCOutlookBar::RemoveCustomPage Rimuove una scheda personalizzata della barra di Outlook.
CMFCOutlookBar::SetButtonsFont Imposta il tipo di carattere del testo nei pulsanti della barra di Outlook.
CMFCOutlookBar::SetMode2003 Specifica se il comportamento della barra di Outlook simula quello di Outlook 2003 (vedere Osservazioni).

Osservazioni:

Per un esempio di barra di Outlook, vedere l'esempio outlookDemo: applicazione OutlookDemo MFC.

Implementazione della barra di Outlook

Per usare i controlli CMFCOutlookBar nell'applicazione, attenersi alla procedura seguente:

  1. Importare un oggetto CMFCOutlookBar nella classe della finestra cornice principale.

    class CMainFrame : public CMDIFrameWnd
    {
        // ...
        CMFCOutlookBar m_wndOutlookBar;
        CMFCOutlookBarPane m_wndOutlookPane;
        // ...
    };
    
  2. Quando si elabora il messaggio WM_CREATE nel frame principale, chiamare il metodo CMFCOutlookBar::Create per creare il controllo scheda della barra di Outlook.

    m_wndOutlookBar.Create (_T("Shortcuts"),
        this,
        CRect (0, 0, 100, 100),
        ID_VIEW_OUTLOOKBAR,
        WS_CHILD | WS_VISIBLE | CBRS_LEFT);
    
  3. Ottenere un puntatore all'oggetto sottostante CMFCOutlookBarTabCtrl usando CBaseTabbedPane::GetUnderlyingWindow.

    CMFCOutlookBarTabCtrl* pOutlookBar = (CMFCOutlookBarTabCtrl*) m_wndOutlookBar.GetUnderlyingWindow ();
    
  4. Creare un oggetto classe CMFCOutlookBarPane per ogni scheda contenente pulsanti.

    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. Chiamare CMFCOutlookBarTabCtrl::AddTab per aggiungere ogni nuova scheda. Impostare il parametro bDetachable su FAL edizione Standard per rendere una pagina non scollegabile. In alternativa, usare CMFCOutlookBarTabCtrl::AddControl per aggiungere pagine scollegabili.

    pOutlookBar->AddTab (&m_wndOutlookPane, "General", (UINT) -1, TRUE);
    
  6. Per aggiungere un CWndcontrollo derivato da - (ad esempio, CLASSE CMFCShellTreeCtrl) come scheda, creare il controllo e chiamare CMFCOutlookBarTabCtrl::AddTab per aggiungerlo alla barra di Outlook.

Nota

È consigliabile usare ID di controllo univoci per ogni oggetto classe CMFCOutlookBarPane e per ogni CWndoggetto derivato da .

Per aggiungere o eliminare in modo dinamico nuove pagine in fase di esecuzione, usare CMFCOutlookBar::CreateCustomPage e CMFCOutlookBar::RemoveCustomPage.

Modalità Outlook 2003

In modalità Outlook 2003, i pulsanti di tabulazioni vengono posizionati nella parte inferiore del riquadro della barra di Outlook. Quando non c'è spazio sufficiente per visualizzare i pulsanti, vengono visualizzati come icone in un'area simile a una barra degli strumenti lungo la parte inferiore del riquadro.

Utilizzare CMFCOutlookBar::SetMode2003 per abilitare la modalità Outlook 2003. Utilizzare CMFCOutlookBarTabCtrl::SetToolbarImageList per impostare la bitmap contenente le icone visualizzate nella parte inferiore della barra di Outlook. Le icone nella bitmap devono essere ordinate in base all'indice di tabulazioni.

Gerarchia di ereditarietà

CObject

CCmdTarget

CWnd

CBasePane

CPane

CDockablePane

CBaseTabbedPane

CMFCOutlookBar

Requisiti

Intestazione: afxoutlookbar.h

CMFCOutlookBar::AllowDestroyEmptyTabbedPane

Specifica se un riquadro a schede vuoto può essere eliminato definitivamente.

virtual BOOL AllowDestroyEmptyTabbedPane() const;

Valore restituito

TRUE se un riquadro a schede vuoto può essere eliminato definitivamente; in caso contrario, FAL edizione Standard. L'implementazione predefinita restituisce sempre TRUE.

Osservazioni:

Se non è possibile eliminare definitivamente un riquadro a schede vuoto, il framework lo nasconde.

CMFCOutlookBar::CanAcceptPane

Determina se è possibile ancorare un altro riquadro al riquadro della barra di Outlook.

virtual BOOL CanAcceptPane(const CBasePane* pBar) const;

Parametri

pBar
[in] Puntatore a un altro riquadro ancorato a questo riquadro.

Valore restituito

TRUE se è possibile ancorare un altro riquadro al riquadro della barra di Outlook; altrimenti FAL edizione Standard.

Osservazioni:

Se la barra di Outlook è in modalità Outlook 2003, l'ancoraggio non è supportato, quindi il valore restituito è FAL edizione Standard.

Se il parametro pBar è NULL, questo metodo restituisce FAL edizione Standard.

In caso contrario, questo metodo si comporta come il metodo di base CBasePane::CanAcceptPane, ad eccezione del fatto che, anche se l'ancoraggio non è abilitato, una barra di Outlook può comunque abilitare un'altra barra di Outlook per essere ancorata su di esso.

CMFCOutlookBar::CanSetCaptionTextToTabName

Determina se il didascalia per il riquadro a schede visualizza lo stesso testo della scheda attiva.

virtual BOOL CanSetCaptionTextToTabName() const;

Valore restituito

TRUE se la finestra della barra di Outlook didascalia viene impostata automaticamente sul testo della scheda attiva; in caso contrario, FAL edizione Standard.

Osservazioni:

Usare CBaseTabbedPane::EnableSetCaptionTextToTabName per abilitare o disabilitare questa funzionalità.

In modalità Outlook 2003 questa impostazione è sempre abilitata.

CMFCOutlookBar::Create

Crea il controllo barra di Outlook.

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

Parametri

lpszCaption
[in] Specifica la finestra didascalia.

pParentWnd
[in] Specifica un puntatore a una finestra padre. Non deve essere NULL.

rect
[in] Specifica le dimensioni e la posizione della barra di Outlook in pixel.

nID
[in] Specifica l'ID del controllo. Deve essere distinto da altri ID di controllo usati nell'applicazione.

dwStyle
[in] Specifica lo stile desiderato della barra di controllo. Per i valori possibili, vedere Stili finestra.

dwControlBarStyle
[in] Specifica gli stili speciali definiti dalla libreria.

pContext
[in] Creare il contesto.

Valore restituito

Diverso da zero se il metodo ha esito positivo; in caso contrario, 0.

Osservazioni:

Si costruisce un CMFCOutlookBar oggetto in due passaggi. Chiamare innanzitutto il costruttore e quindi chiamare Create, che crea il controllo barra di Outlook e lo collega all'oggetto CMFCOutlookBar .

Vedere CBasePane::CreateEx per l'elenco degli stili definiti dalla libreria disponibili da specificare da dwControlBarStyle.

Esempio

Nell'esempio seguente viene illustrato come usare il Create metodo della CMFCOutlookBar classe . Questo frammento di codice fa parte dell'esempio di visualizzazioni multi-vista di 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 scheda personalizzata della barra di Outlook.

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

Parametri

lpszPageName
[in] Etichetta della pagina.

bActivatePage
[in] Se TRUE, la pagina diventa attiva al momento della creazione.

dwEnabledDocking
[in] Combinazione di flag CBRS_ALIGN_ che specifica i lati di ancoraggio abilitati quando la pagina viene scollegata.

bEnableTextLabels
[in] Se TRUE, le etichette di testo sono abilitate per i pulsanti che risiedono nella pagina.

Valore restituito

Puntatore alla pagina appena creata o NULL se la creazione non è riuscita.

Osservazioni:

Utilizzare questo metodo per consentire agli utenti di creare pagine personalizzate della barra di Outlook. È possibile creare fino a 100 pagine per applicazione. Gli ID dei controlli pagina iniziano da 0xF000. La creazione ha esito negativo se il numero totale di pagine della barra di Outlook personalizzate supera 100.

Usare CMFCOutlookBar::RemoveCustomPage per eliminare pagine personalizzate.

CMFCOutlookBar::D oesAllowDynInsertBefore

Specifica se un utente può ancorare un riquadro al bordo esterno della barra di Outlook.

DECLARE_MESSAGE_MAP virtual BOOL DoesAllowDynInsertBefore() const;

Valore restituito

L'implementazione predefinita restituisce FAL edizione Standard.

Osservazioni:

Il framework chiama il DoesAllowDynInsertBefore metodo quando cerca una posizione per ancorare un riquadro dinamico. Se la funzione restituisce FAL edizione Standard, il framework non consente l'ancoraggio di alcun riquadro dinamico ai bordi esterni del riquadro.

In genere, si crea una barra di Outlook come controllo statico non mobile. È possibile eseguire l'override di questa funzione in una classe derivata e restituire TRUE per modificare questo comportamento.

Nota

Poiché i riquadri dinamici controllano lo stato dei riquadri statici ancorati durante l'ancoraggio, è consigliabile ancorare riquadri dinamici dopo i riquadri statici quando possibile.

CMFCOutlookBar::FloatTab

Floats a pane.

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

Parametri

pBar
[in] Puntatore al riquadro da spostare.

nTabID
[in] Indice in base zero della scheda su float.

dockMethod
[in] Specifica il metodo da utilizzare per rendere il riquadro float. Per altre informazioni, vedere CBaseTabbedPane::FloatTab.

bHide
[in] TRUE per nascondere il riquadro prima di virgola mobile; in caso contrario, FAL edizione Standard. A differenza della versione della classe base di questo metodo, questo parametro non ha un valore predefinito.

Valore restituito

TRUE se il riquadro è mobile; in caso contrario, FAL edizione Standard.

Osservazioni:

Questo metodo è simile a CBaseTabbedPane::FloatTab , ad eccezione del fatto che non abilita l'ultima scheda rimanente in un controllo barra di Outlook su float.

CMFCOutlookBar::GetButtonsFont

Restituisce il tipo di carattere del testo nelle schede del pulsante della pagina della barra di Outlook.

CFont* GetButtonsFont() const;

Valore restituito

Puntatore all'oggetto carattere utilizzato per visualizzare il testo nelle schede dei pulsanti della pagina della barra di Outlook.

Osservazioni:

Utilizzare questa funzione per recuperare il tipo di carattere utilizzato per visualizzare il testo nelle schede dei pulsanti della pagina di Outlook. È possibile impostare il tipo di carattere chiamando su CMFCOutlookBar::SetButtonsFont.

CMFCOutlookBar::GetTabArea

Determina le dimensioni e la posizione delle aree della scheda sulla barra di Outlook.

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

Parametri

rectTabAreaTop
[out] Contiene le dimensioni e la posizione (nelle coordinate client) dell'area di tabulazione superiore quando la funzione restituisce.

rectTabAreaBottom
[out] Contiene le dimensioni e la posizione (nelle coordinate client) dell'area di tabulazione inferiore quando la funzione viene restituita.

Osservazioni:

Il framework chiama questo metodo per determinare il tipo di ancoraggio al riquadro di destinazione. Quando il framework determina che l'utente trascina il riquadro da ancorare sull'area di tabulazioni del riquadro di destinazione, tenta di aggiungere il primo riquadro come nuova scheda del riquadro di destinazione. In caso contrario, tenta di ancorare il primo riquadro a un lato appropriato del riquadro di destinazione. Il framework crea un nuovo contenitore con un dispositivo di scorrimento per contenere il riquadro ancorato aggiuntivo.

L'implementazione predefinita di GetTabArea restituisce l'intera area client della barra di Outlook se la barra di Outlook è statica, ovvero se la barra di Outlook non può essere mobile. In caso contrario, restituisce l'area utilizzata dai pulsanti della pagina nella parte superiore e inferiore del controllo barra di Outlook.

Eseguire l'override di questo metodo nella classe derivata da CMFCOutlookBar per modificare questo comportamento.

CMFCOutlookBar::IsMode2003

Specifica se il comportamento della barra di Outlook simula quello di Microsoft Office Outlook 2003.

BOOL IsMode2003() const;

Valore restituito

Diverso da zero se la barra di Outlook è in esecuzione in modalità Microsoft Office 2003; in caso contrario, 0.

Osservazioni:

È possibile abilitare questa modalità usando CMFCOutlookBar::SetMode2003.

CMFCOutlookBar::OnAfterAnimation

Chiamato da CMFCOutlookBarTabCtrl::SetActiveTab dopo che la scheda attiva è stata impostata usando l'animazione.

virtual void OnAfterAnimation(int nPage);

Parametri

nPage
[in] Indice in base zero della pagina della scheda che è stata resa attiva.

Osservazioni:

L'effetto visivo dell'impostazione della scheda attiva dipende dal fatto che sia stata abilitata l'animazione. Per altre informazioni, vedere CMFCOutlookBarTabCtrl::EnableAnimation.

CMFCOutlookBar::OnBeforeAnimation

Chiamato da CMFCOutlookBarTabCtrl::SetActiveTab prima che una pagina di tabulazione venga impostata come scheda attiva usando l'animazione.

virtual BOOL OnBeforeAnimation(int nPage);

Parametri

nPage
[in] Indice in base zero della pagina della scheda che sta per essere impostato attivo.

Valore restituito

Restituisce TRUE se l'animazione deve essere utilizzata per impostare la nuova scheda attiva o FAL edizione Standard se l'animazione deve essere disabilitata.

Osservazioni:

CMFCOutlookBar::OnScroll

Chiamato dal framework se la barra di Outlook scorre verso l'alto o verso il basso.

virtual void OnScroll(BOOL bDown);

Parametri

bDown
[in] TRUE se la barra di Outlook scorre verso il basso o FAL edizione Standard se scorre verso l'alto.

Osservazioni:

CMFCOutlookBar::RemoveCustomPage

Rimuove una pagina personalizzata della barra di Outlook.

BOOL RemoveCustomPage(
    UINT uiPage,
    CMFCOutlookBarTabCtrl* pTargetWnd);

Parametri

uiPage
[in] Indice in base zero della pagina nella finestra padre di Outlook.

pTargetWnd
[in] Puntatore alla finestra padre di Outlook.

Valore restituito

Diverso da zero se la pagina personalizzata è stata rimossa correttamente; in caso contrario, 0.

Osservazioni:

Chiamare questa funzione per eliminare pagine personalizzate. Quando la pagina viene rimossa, il relativo ID di controllo viene restituito al pool di ID disponibili.

È necessario fornire un puntatore all'oggetto Classe CMFCOutlookBarTabCtrl in cui risiede la pagina da rimuovere. Si noti che un utente può spostare pagine scollegabili tra diverse barre di Outlook, ma le informazioni relative a una pagina personalizzata si trovano nell'oggetto barra di Outlook per cui è stato chiamato CMFCOutlookBar::CreateCustomPage.

Utilizzare CBaseTabbedPane::GetUnderlyingWindow per ottenere un puntatore alla finestra di Outlook.

CMFCOutlookBar::SetButtonsFont

Imposta il tipo di carattere del testo nei pulsanti della barra di Outlook.

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

Parametri

pFont
[in] Specifica il nuovo tipo di carattere.

bRedraw
[in] Se TRUE, la barra di Outlook verrà ridisegnata.

Osservazioni:

Utilizzare questo metodo per impostare un tipo di carattere per il testo visualizzato nei pulsanti della scheda di Outlook.

CMFCOutlookBar::SetMode2003

Specifica se il comportamento della barra di Outlook simula quello di Outlook 2003.

void SetMode2003(BOOL bMode2003=TRUE);

Parametri

bMode2003
[in] Se TRUE, la modalità Office 2003 è abilitata.

Osservazioni:

Utilizzare questa funzione per abilitare o disabilitare la modalità Office 2003. In questa modalità, la barra di Outlook dispone di una barra degli strumenti aggiuntiva con un pulsante di personalizzazione. Il comportamento della barra di Outlook è conforme al comportamento della barra di Outlook in Microsoft Office 2003.

Per impostazione predefinita, questa modalità è disabilitata.

Nota

Questa funzione deve essere chiamata prima di CMFCOutlookBar::Create.

Vedi anche

Grafico della gerarchia
Classi
Classe CBaseTabbedPane
Classe CMFCOutlookBarTabCtrl
Classe CMFCOutlookBarPane