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 CWnd
oggetti 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 la 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:
Importare un oggetto
CMFCOutlookBar
nella classe della finestra cornice principale.class CMainFrame : public CMDIFrameWnd { // ... CMFCOutlookBar m_wndOutlookBar; CMFCOutlookBarPane m_wndOutlookPane; // ... };
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);
Ottenere un puntatore all'oggetto sottostante
CMFCOutlookBarTabCtrl
usando CBaseTabbedPane::GetUnderlyingWindow.CMFCOutlookBarTabCtrl* pOutlookBar = (CMFCOutlookBarTabCtrl*) m_wndOutlookBar.GetUnderlyingWindow ();
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);
Chiamare CMFCOutlookBarTabCtrl::AddTab per aggiungere ogni nuova scheda. Impostare il parametro bDetachable su FALSE per rendere una pagina non scollegabile. In alternativa, usare CMFCOutlookBarTabCtrl::AddControl per aggiungere pagine scollegabili.
pOutlookBar->AddTab (&m_wndOutlookPane, "General", (UINT) -1, TRUE);
Per aggiungere un
CWnd
controllo 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 CWnd
oggetto 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à
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, FALSE. 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; in caso contrario FALSE.
Osservazioni:
Se la barra di Outlook è in modalità Outlook 2003, l'ancoraggio non è supportato, quindi il valore restituito è FALSE.
Se il parametro pBar è NULL, questo metodo restituisce FALSE.
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 la didascalia per il riquadro a schede visualizza lo stesso testo della scheda attiva.
virtual BOOL CanSetCaptionTextToTabName() const;
Valore restituito
TRUE se la didascalia della finestra della barra di Outlook viene impostata automaticamente sul testo della scheda attiva; in caso contrario FALSE.
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 didascalia della finestra.
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 FALSE.
Osservazioni:
Il framework chiama il DoesAllowDynInsertBefore
metodo quando cerca una posizione per ancorare un riquadro dinamico. Se la funzione restituisce FALSE, 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, FALSE. 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, FALSE.
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 nell'impostazione della nuova scheda attiva o FALSE 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 FALSE 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