CMFCOutlookBar, classe
Volet à onglets avec l'apparence visuelle du Volet de navigation dans Microsoft Outlook 2000 et Outlook 2003. L’objet CMFCOutlookBar
contient un objet CMFCOutlookBarTabCtrl, ainsi qu’une série d’onglets. Les onglets peuvent être des objets CMFCOutlookBarPane Class ou CWnd
des objets dérivés. Pour l'utilisateur, la barre Outlook apparaît comme un ensemble de boutons et une zone d'affichage. Lorsque l'utilisateur clique sur un bouton, le volet de contrôle ou de bouton correspondant s'affiche.
Syntaxe
class CMFCOutlookBar : public CBaseTabbedPane
Membres
Constructeurs publics
Nom | Description |
---|---|
CMFCOutlookBar::CMFCOutlookBar |
Constructeur par défaut. |
CMFCOutlookBar::~CMFCOutlookBar |
Destructeur. |
Méthodes publiques
Nom | Description |
---|---|
CMFCOutlookBar ::AllowDestroyEmptyTabbedPane | Spécifie si un volet à onglets vide peut être détruit. (Remplacements CBaseTabbedPane ::AllowDestroyEmptyTabbedPane.) |
CMFCOutlookBar ::CanAcceptPane | Détermine si un autre volet peut être ancré dans le volet de barre Outlook. (Remplace CDockablePane ::CanAcceptPane.) |
CMFCOutlookBar ::CanSetCaptionTextToTabName | Détermine si la légende du volet à onglets affiche le même texte que l’onglet actif. (Remplace CBaseTabbedPane ::CanSetCaptionTextToTabName.) |
CMFCOutlookBar ::Create | Crée le contrôle de barre Outlook. |
CMFCOutlookBar ::CreateCustomPage | Crée un onglet de barre Outlook personnalisé. |
CMFCOutlookBar::CreateObject |
Utilisé par l'infrastructure pour créer une instance dynamique de ce type de classe. |
CMFCOutlookBar ::D oesAllowDynInsertBefore | Détermine si un utilisateur peut ancrer une barre de contrôle au bord externe de la barre Outlook. |
CMFCOutlookBar ::FloatTab | Flotte un volet, mais uniquement si le volet réside actuellement dans un onglet détachable. (Remplace CBaseTabbedPane ::FloatTab.) |
CMFCOutlookBar ::GetButtonsFont | Retourne la police du texte sur les boutons de la barre Outlook. |
CMFCOutlookBar ::GetTabArea | Retourne la taille et la position des zones d’onglet dans la barre Outlook. (Remplacements CBaseTabbedPane ::GetTabArea.) |
CMFCOutlookBar::GetThisClass |
Utilisé par l’infrastructure pour obtenir un pointeur vers l’objet CRuntimeClass associé à ce type de classe. |
CMFCOutlookBar ::IsMode2003 | Détermine si le comportement de la barre Outlook imite celui de Microsoft Office Outlook 2003 (voir Remarques). |
CMFCOutlookBar ::OnAfterAnimation | Appelé par CMFCOutlookBarTabCtrl ::SetActiveTab après la définition de l’onglet actif à l’aide de l’animation. |
CMFCOutlookBar ::OnBeforeAnimation | Appelé par CMFCOutlookBarTabCtrl ::SetActiveTab avant qu’une page d’onglet soit définie comme onglet actif à l’aide de l’animation. |
CMFCOutlookBar ::OnScroll | Appelé par l’infrastructure si la barre Outlook fait défiler vers le haut ou le bas. |
CMFCOutlookBar ::RemoveCustomPage | Supprime un onglet de barre Outlook personnalisé. |
CMFCOutlookBar ::SetButtonsFont | Définit la police du texte sur les boutons de la barre Outlook. |
CMFCOutlookBar ::SetMode2003 | Spécifie si le comportement de la barre Outlook imite celui d’Outlook 2003 (voir Remarques). |
Notes
Pour obtenir un exemple de barre Outlook, consultez l’exemple OutlookDemo : application OutlookDemo MFC.
Implémentation de la barre Outlook
Pour utiliser le contrôle CMFCOutlookBar
dans votre application, procédez comme suit :
Incorporez un objet
CMFCOutlookBar
dans la classe de fenêtre frame principale.class CMainFrame : public CMDIFrameWnd { // ... CMFCOutlookBar m_wndOutlookBar; CMFCOutlookBarPane m_wndOutlookPane; // ... };
Lors du traitement du message WM_CREATE dans le cadre principal, appelez la méthode CMFCOutlookBar ::Create pour créer le contrôle d’onglet de barre Outlook.
m_wndOutlookBar.Create (_T("Shortcuts"), this, CRect (0, 0, 100, 100), ID_VIEW_OUTLOOKBAR, WS_CHILD | WS_VISIBLE | CBRS_LEFT);
Obtenez un pointeur vers le sous-jacent
CMFCOutlookBarTabCtrl
à l’aide de CBaseTabbedPane ::GetUnderlyingWindow.CMFCOutlookBarTabCtrl* pOutlookBar = (CMFCOutlookBarTabCtrl*) m_wndOutlookBar.GetUnderlyingWindow ();
Créez un objet CMFCOutlookBarPane Class pour chaque onglet qui contient des boutons.
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);
Appelez CMFCOutlookBarTabCtrl ::AddTab pour ajouter chaque nouvel onglet. Définissez le paramètre bDetachable sur FALSE pour rendre une page non détachable. Vous pouvez également utiliser CMFCOutlookBarTabCtrl ::AddControl pour ajouter des pages détachables.
pOutlookBar->AddTab (&m_wndOutlookPane, "General", (UINT) -1, TRUE);
Pour ajouter un
CWnd
contrôle dérivé (par exemple, CMFCShellTreeCtrl, classe) sous forme d’onglet, créez le contrôle et appelez CMFCOutlookBarTabCtrl ::AddTabTab pour l’ajouter à la barre Outlook.
Remarque
Vous devez utiliser des ID de contrôle uniques pour chaque objet CMFCOutlookBarPane Class et pour chaque CWnd
objet dérivé.
Pour ajouter ou supprimer dynamiquement de nouvelles pages au moment de l’exécution, utilisez CMFCOutlookBar ::CreateCustomPage et CMFCOutlookBar ::RemoveCustomPage.
Outlook 2003 Mode
En mode Outlook 2003, les boutons d’onglet sont positionnés en bas du volet de barre Outlook. Lorsqu’il n’y a pas suffisamment de place pour afficher les boutons, ils sont affichés en tant qu’icônes dans une zone de type barre d’outils le long du bas du volet.
Utilisez CMFCOutlookBar ::SetMode2003 pour activer le mode Outlook 2003. Utilisez CMFCOutlookBarTabCtrl ::SetToolbarImageList pour définir la bitmap qui contient les icônes affichées en bas de la barre Outlook. Les icônes de la bitmap doivent être classées par index de tabulation.
Hiérarchie d'héritage
Spécifications
En-tête : afxoutlookbar.h
CMFCOutlookBar ::AllowDestroyEmptyTabbedPane
Spécifie si un volet à onglets vide peut être détruit.
virtual BOOL AllowDestroyEmptyTabbedPane() const;
Valeur de retour
TRUE si un volet à onglets vide peut être détruit ; sinon, FALSE. L’implémentation par défaut retourne toujours TRUE.
Notes
Si un volet à onglets vide ne peut pas être détruit, le framework le masque à la place.
CMFCOutlookBar ::CanAcceptPane
Détermine si un autre volet peut être ancré dans le volet de barre Outlook.
virtual BOOL CanAcceptPane(const CBasePane* pBar) const;
Paramètres
pBar
[in] Pointeur vers un autre volet qui est ancré dans ce volet.
Valeur de retour
TRUE si un autre volet peut être ancré dans le volet de barre Outlook ; sinon FALSE.
Notes
Si la barre Outlook est en mode Outlook 2003, l’ancrage n’est pas pris en charge, de sorte que la valeur de retour est FALSE.
Si le paramètre pBar est NULL, cette méthode retourne FALSE.
Sinon, cette méthode se comporte comme la méthode de base CBasePane ::CanAcceptPane, sauf que même si l’ancrage n’est pas activé, une barre Outlook peut toujours permettre à une autre barre Outlook d’être ancrée sur celle-ci.
CMFCOutlookBar ::CanSetCaptionTextToTabName
Détermine si la légende du volet à onglets affiche le même texte que l’onglet actif.
virtual BOOL CanSetCaptionTextToTabName() const;
Valeur de retour
TRUE si la légende de la fenêtre de barre Outlook est automatiquement définie sur le texte de l’onglet actif ; sinon FALSE.
Notes
Utilisez CBaseTabbedPane ::EnableSetCaptionTextToTabName pour activer ou désactiver cette fonctionnalité.
En mode Outlook 2003, ce paramètre est toujours activé.
CMFCOutlookBar ::Create
Crée le contrôle de barre Outlook.
virtual BOOL Create(
LPCTSTR lpszCaption,
CWnd* pParentWnd,
const RECT& rect,
UINT nID,
DWORD dwStyle,
DWORD dwControlBarStyle=AFX_CBRS_RESIZE,
CCreateContext* pContext=NULL);
Paramètres
lpszCaption
[in] Spécifie la légende de la fenêtre.
pParentWnd
[in] Spécifie un pointeur vers une fenêtre parente. Elle ne doit pas être NULL.
rect
[in] Spécifie la taille et la position de la barre Outlook en pixels.
nID
[in] Spécifie l’ID de contrôle. Doit être distinct des autres ID de contrôle utilisés dans l’application.
dwStyle
[in] Spécifie le style de barre de contrôle souhaité. Pour connaître les valeurs possibles, consultez Styles de fenêtre.
dwControlBarStyle
[in] Spécifie les styles spéciaux définis par la bibliothèque.
pContext
[in] Créez un contexte.
Valeur de retour
Différent de zéro si la méthode réussit ; sinon 0.
Notes
Vous construisez un CMFCOutlookBar
objet en deux étapes. Appelez d’abord le constructeur, puis appelez Create
, qui crée le contrôle de barre Outlook et l’attache à l’objet CMFCOutlookBar
.
Consultez CBasePane ::CreateEx pour obtenir la liste des styles définis par la bibliothèque disponibles à spécifier par dwControlBarStyle.
Exemple
L’exemple suivant montre comment utiliser la Create
méthode de la CMFCOutlookBar
classe. Cet extrait de code fait partie de l’exemple 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
Crée un onglet de barre Outlook personnalisé.
CMFCOutlookBarPane* CreateCustomPage(
LPCTSTR lpszPageName,
BOOL bActivatePage=TRUE,
DWORD dwEnabledDocking=CBRS_ALIGN_ANY,
BOOL bEnableTextLabels=TRUE);
Paramètres
lpszPageName
[in] Étiquette de page.
bActivatePage
[in] Si la valeur est TRUE, la page devient active lors de la création.
dwEnabledDocking
[in] Combinaison d’indicateurs de CBRS_ALIGN_ qui spécifie les côtés d’ancrage activés lorsque la page est détachée.
bEnableTextLabels
[in] Si la valeur est TRUE, les étiquettes de texte sont activées pour les boutons qui résident sur la page.
Valeur de retour
Pointeur vers la page nouvellement créée ou NULL si la création a échoué.
Notes
Utilisez cette méthode pour permettre aux utilisateurs de créer des pages de barres Outlook personnalisées. Vous pouvez créer jusqu’à 100 pages par application. Les ID de contrôle de page commencent à partir de 0xF000. La création échoue si le nombre total de pages de barres Outlook personnalisées dépasse 100.
Utilisez CMFCOutlookBar ::RemoveCustomPage pour supprimer des pages personnalisées.
CMFCOutlookBar ::D oesAllowDynInsertBefore
Spécifie si un utilisateur peut ancrer un volet au bord externe de la barre Outlook.
DECLARE_MESSAGE_MAP virtual BOOL DoesAllowDynInsertBefore() const;
Valeur de retour
L’implémentation par défaut retourne FALSE.
Notes
L’infrastructure appelle la DoesAllowDynInsertBefore
méthode lorsqu’elle recherche un emplacement pour ancrer un volet dynamique. Si la fonction retourne FALSE, l’infrastructure n’autorise pas l’ancrage d’un volet dynamique sur les bords externes du volet.
En règle générale, vous créez une barre Outlook en tant que contrôle statique non flottant. Vous pouvez remplacer cette fonction dans une classe dérivée et retourner TRUE pour modifier ce comportement.
Remarque
Étant donné que les volets dynamiques vérifient l’état des volets statiques ancrés lors de l’ancrage, vous devez ancrer les volets dynamiques après les volets statiques dans la mesure du possible.
CMFCOutlookBar ::FloatTab
Flotte un volet.
virtual BOOL FloatTab(
CWnd* pBar,
int nTabID,
AFX_DOCK_METHOD dockMethod,
BOOL bHide);
Paramètres
pBar
[in] Pointeur vers le volet à flotter.
nTabID
[in] Index de base zéro de l’onglet à flotter.
dockMethod
[in] Spécifie la méthode à utiliser pour faire flotter le volet. Pour plus d’informations, consultez CBaseTabbedPane ::FloatTab.
bHide
[in] TRUE pour masquer le volet avant de flotter ; sinon, FALSE. Contrairement à la version de classe de base de cette méthode, ce paramètre n’a pas de valeur par défaut.
Valeur de retour
TRUE si le volet flotte ; sinon, FALSE.
Notes
Cette méthode est semblable à CBaseTabbedPane ::FloatTab , sauf qu’elle n’active pas le dernier onglet restant d’un contrôle de barre Outlook à flotter.
CMFCOutlookBar ::GetButtonsFont
Renvoie la police du texte sous les onglets des boutons de page de la barre Outlook.
CFont* GetButtonsFont() const;
Valeur de retour
Pointeur vers l’objet de police utilisé pour afficher du texte sur les onglets des boutons de la page de barre Outlook.
Notes
Utilisez cette fonction pour récupérer la police utilisée pour afficher le texte sous les onglets des boutons de page Outlook. Vous pouvez définir la police en appelant CMFCOutlookBar ::SetButtonsFont.
CMFCOutlookBar ::GetTabArea
Détermine la taille et la position des zones d’onglet dans la barre Outlook.
virtual void GetTabArea(
CRect& rectTabAreaTop,
CRect& rectTabAreaBottom) const;
Paramètres
rectTabAreaTop
[out] Contient la taille et la position (dans les coordonnées du client) de la zone d’onglet supérieure lorsque la fonction est retournée.
rectTabAreaBottom
[out] Contient la taille et la position (dans les coordonnées du client) de la zone d’onglet inférieure lorsque la fonction est retournée.
Notes
L’infrastructure appelle cette méthode pour déterminer le type d’ancrage dans le volet cible. Lorsque l’infrastructure détermine que l’utilisateur fait glisser le volet pour être ancré sur la zone d’onglet du volet cible, il tente d’ajouter le premier volet sous la forme d’un nouvel onglet du volet cible. Sinon, il tente d’ancrer le premier volet à un côté approprié du volet cible. L’infrastructure crée un conteneur avec un curseur pour prendre en charge le volet ancré supplémentaire.
L’implémentation par défaut de GetTabArea
retourne l’ensemble de la zone cliente de la barre Outlook si la barre Outlook est statique ; autrement dit, si la barre Outlook ne peut pas flotter. Sinon, elle retourne la zone que les boutons de page prennent en haut et en bas du contrôle de barre Outlook.
Remplacez cette méthode dans la classe dérivée de CMFCOutlookBar
la modification de ce comportement.
CMFCOutlookBar ::IsMode2003
Spécifie si le comportement de la barre Outlook imite celui de Microsoft Office Outlook 2003.
BOOL IsMode2003() const;
Valeur de retour
Différent de zéro si la barre Outlook s’exécute en mode Microsoft Office 2003 ; sinon 0.
Notes
Vous pouvez activer ce mode à l’aide de CMFCOutlookBar ::SetMode2003.
CMFCOutlookBar ::OnAfterAnimation
Appelé par CMFCOutlookBarTabCtrl ::SetActiveTab après la définition de l’onglet actif à l’aide de l’animation.
virtual void OnAfterAnimation(int nPage);
Paramètres
nPage
[in] Index de base zéro de la page d’onglets qui a été rendue active.
Notes
L’effet visuel de la définition de l’onglet actif dépend de l’activation de l’animation. Pour plus d’informations, consultez CMFCOutlookBarTabCtrl ::EnableAnimation.
CMFCOutlookBar ::OnBeforeAnimation
Appelé par CMFCOutlookBarTabCtrl ::SetActiveTab avant qu’une page d’onglet soit définie comme onglet actif à l’aide de l’animation.
virtual BOOL OnBeforeAnimation(int nPage);
Paramètres
nPage
[in] Index de base zéro de la page d’onglets sur le point d’être défini actif.
Valeur de retour
Retourne TRUE si l’animation doit être utilisée pour définir le nouvel onglet actif ou FALSE si l’animation doit être désactivée.
Notes
CMFCOutlookBar ::OnScroll
Appelé par l’infrastructure si la barre Outlook fait défiler vers le haut ou le bas.
virtual void OnScroll(BOOL bDown);
Paramètres
bDown
[in] TRUE si la barre Outlook fait défiler vers le bas ou FALSE s’il fait défiler vers le haut.
Notes
CMFCOutlookBar ::RemoveCustomPage
Supprime une page d’onglets de barre Outlook personnalisée.
BOOL RemoveCustomPage(
UINT uiPage,
CMFCOutlookBarTabCtrl* pTargetWnd);
Paramètres
uiPage
[in] Index de base zéro de la page dans la fenêtre Outlook parente.
pTargetWnd
[in] Pointeur vers la fenêtre Outlook parente.
Valeur de retour
Différent de zéro si la page personnalisée a été supprimée avec succès ; sinon 0.
Notes
Appelez cette fonction pour supprimer des pages personnalisées. Lorsque la page est supprimée, son ID de contrôle est retourné au pool d’ID disponibles.
Vous devez fournir un pointeur vers l’objet CMFCOutlookBarTabCtrl Class dans lequel la page à supprimer réside actuellement. Notez qu’un utilisateur peut déplacer des pages détachables entre différentes barres Outlook, mais les informations relatives à une page personnalisée résident dans l’objet de barre Outlook pour lequel vous avez appelé CMFCOutlookBar ::CreateCustomPage.
Utilisez CBaseTabbedPane ::GetUnderlyingWindow pour obtenir un pointeur vers la fenêtre Outlook.
CMFCOutlookBar ::SetButtonsFont
Définit la police du texte sur les boutons de la barre Outlook.
void SetButtonsFont(
CFont* pFont,
BOOL bRedraw=TRUE);
Paramètres
pFont
[in] Spécifie la nouvelle police.
bRedraw
[in] Si la valeur est TRUE, la barre Outlook est redessinée.
Notes
Utilisez cette méthode pour définir une police pour le texte affiché sur les boutons de page d’onglet Outlook.
CMFCOutlookBar ::SetMode2003
Spécifie si le comportement de la barre Outlook imite celui d’Outlook 2003.
void SetMode2003(BOOL bMode2003=TRUE);
Paramètres
bMode2003
[in] Si la valeur est TRUE, le mode Office 2003 est activé.
Notes
Utilisez cette fonction pour activer ou désactiver le mode Office 2003. Dans ce mode, la barre Outlook a une barre d’outils supplémentaire avec un bouton de personnalisation. Le comportement de la barre Outlook est conforme au comportement de la barre Outlook dans Microsoft Office 2003.
Par défaut, ce mode est désactivé.
Remarque
Cette fonction doit être appelée avant CMFCOutlookBar ::Create.
Voir aussi
Graphique hiérarchique
Classes
CBaseTabbedPane, classe
CMFCOutlookBarTabCtrl, classe
CMFCOutlookBarPane, classe