Udostępnij za pośrednictwem


Klasa CMFCOutlookBar

Okienko z kartami z wizualnym wyglądem okienka nawigacji w programie Microsoft Outlook 2000 lub Outlook 2003. Obiekt CMFCOutlookBar zawiera obiekt klasy CMFCOutlookBarTabCtrl i serię kart. Karty mogą być obiektami klasy CMFCOutlookBarPane lub CWndobiektami pochodnymi. Dla użytkownika pasek programu Outlook jest wyświetlany jako seria przycisków i obszaru wyświetlania. Gdy użytkownik kliknie przycisk, zostanie wyświetlone odpowiednie okienko kontrolki lub przycisku.

Składnia

class CMFCOutlookBar : public CBaseTabbedPane

Członkowie

Konstruktory publiczne

Nazwa/nazwisko opis
CMFCOutlookBar::CMFCOutlookBar Konstruktor domyślny.
CMFCOutlookBar::~CMFCOutlookBar Destruktora.

Metody publiczne

Nazwa/nazwisko opis
CMFCOutlookBar::AllowDestroyEmptyTabbedPane Określa, czy można zniszczyć puste okienko z kartami. (Przesłonięcia) CBaseTabbedPane::AllowDestroyEmptyTabbedPane.
CMFCOutlookBar::CanAcceptPane Określa, czy do okienka paska programu Outlook można zadokować inne okienko. (Przesłania CDockablePane::CanAcceptPane).
CMFCOutlookBar::CanSetCaptionTextToTabName Określa, czy podpis dla okienka z kartami wyświetla ten sam tekst co aktywna karta. (Zastępuje CBaseTabbedPane::CanSetCaptionTextToTabName).
CMFCOutlookBar::Create Tworzy kontrolkę paska programu Outlook.
CMFCOutlookBar::CreateCustomPage Tworzy niestandardową kartę paska programu Outlook.
CMFCOutlookBar::CreateObject Używana przez platformę do tworzenia wystąpienia dynamicznego tego typu klasy.
CMFCOutlookBar::D oesAllowDynInsertBefore Określa, czy użytkownik może zadokować pasek sterowania na zewnętrznej krawędzi paska programu Outlook.
CMFCOutlookBar::FloatTab Unosi okienko, ale tylko wtedy, gdy okienko znajduje się obecnie na odłączanej karcie. (Zastępuje CBaseTabbedPane::FloatTab).)
CMFCOutlookBar::GetButtonsFont Zwraca czcionkę tekstu na przyciskach paska programu Outlook.
CMFCOutlookBar::GetTabArea Zwraca rozmiar i położenie obszarów karty na pasku programu Outlook. (Przesłonięcia) CBaseTabbedPane::GetTabArea.)
CMFCOutlookBar::GetThisClass Używany przez platformę do uzyskiwania wskaźnika do obiektu CRuntimeClass skojarzonego z tym typem klasy.
CMFCOutlookBar::IsMode2003 Określa, czy zachowanie paska programu Outlook naśladuje działanie programu Microsoft Office Outlook 2003 (zobacz uwagi).
CMFCOutlookBar::OnAfterAnimation Wywoływane przez CMFCOutlookBarTabCtrl::SetActiveTab po ustawieniu aktywnej karty przy użyciu animacji.
CMFCOutlookBar::OnBeforeAnimation Wywoływana przez cmFCOutlookBarTabCtrl::SetActiveTab przed ustawieniem strony karty jako aktywna karta przy użyciu animacji.
CMFCOutlookBar::OnScroll Wywoływana przez platformę, jeśli pasek programu Outlook przewija się w górę lub w dół.
CMFCOutlookBar::RemoveCustomPage Usuwa niestandardową kartę paska programu Outlook.
CMFCOutlookBar::SetButtonsFont Ustawia czcionkę tekstu na przyciskach paska programu Outlook.
CMFCOutlookBar::SetMode2003 Określa, czy zachowanie paska programu Outlook naśladuje działanie programu Outlook 2003 (zobacz Uwagi).

Uwagi

Przykład paska programu Outlook można znaleźć w artykule OutlookDemo Sample: MFC OutlookDemo Application (Przykład: aplikacja MFC OutlookDemo).

Implementowanie paska programu Outlook

Aby użyć kontrolki CMFCOutlookBar w aplikacji, wykonaj następujące kroki:

  1. CMFCOutlookBar Osadź obiekt w głównej klasie okien ramowych.

    class CMainFrame : public CMDIFrameWnd
    {
        // ...
        CMFCOutlookBar m_wndOutlookBar;
        CMFCOutlookBarPane m_wndOutlookPane;
        // ...
    };
    
  2. Podczas przetwarzania komunikatu WM_CREATE w ramce głównej wywołaj metodę CMFCOutlookBar::Create , aby utworzyć kontrolkę karty paska programu Outlook.

    m_wndOutlookBar.Create (_T("Shortcuts"),
        this,
        CRect (0, 0, 100, 100),
        ID_VIEW_OUTLOOKBAR,
        WS_CHILD | WS_VISIBLE | CBRS_LEFT);
    
  3. Uzyskaj wskaźnik do bazowego CMFCOutlookBarTabCtrl przy użyciu polecenia CBaseTabbedPane::GetUnderlyingWindow.

    CMFCOutlookBarTabCtrl* pOutlookBar = (CMFCOutlookBarTabCtrl*) m_wndOutlookBar.GetUnderlyingWindow ();
    
  4. Utwórz obiekt klasy CMFCOutlookBarPane dla każdej karty zawierającej przyciski.

    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. Wywołaj metodę CMFCOutlookBarTabCtrl::AddTab , aby dodać każdą nową kartę. Ustaw parametr bDetachable na FALSE, aby strona nie jest odłączana. Możesz też użyć polecenia CMFCOutlookBarTabCtrl::AddControl , aby dodać odłączane strony.

    pOutlookBar->AddTab (&m_wndOutlookPane, "General", (UINT) -1, TRUE);
    
  6. Aby dodać kontrolkę pochodną CWnd(na przykład klasa CMFCShellTreeCtrl) jako kartę, utwórz kontrolkę i wywołaj metodę CMFCOutlookBarTabCtrl::AddTab , aby dodać ją do paska programu Outlook.

Uwaga

Należy użyć unikatowych identyfikatorów kontrolek dla każdego obiektu klasy CMFCOutlookBarPane i dla każdego CWndobiektu pochodnego.

Aby dynamicznie dodawać lub usuwać nowe strony w czasie wykonywania, użyj polecenia CMFCOutlookBar::CreateCustomPage i CMFCOutlookBar::RemoveCustomPage.

Tryb programu Outlook 2003

W trybie programu Outlook 2003 przyciski karty są umieszczone w dolnej części okienka paska programu Outlook. Jeśli nie ma wystarczającego miejsca na wyświetlanie przycisków, są one wyświetlane jako ikony w obszarze przypominającym pasek narzędzi wzdłuż dolnej części okienka.

Użyj polecenia CMFCOutlookBar::SetMode2003 , aby włączyć tryb programu Outlook 2003. Użyj polecenia CMFCOutlookBarTabCtrl::SetToolbarImageList , aby ustawić mapę bitową zawierającą ikony wyświetlane w dolnej części paska programu Outlook. Ikony na mapie bitowej muszą być uporządkowane według indeksu tabulacji.

Hierarchia dziedziczenia

Cobject

Ccmdtarget

Cwnd

CBasePane

Cpane

Cdockablepane

Cbasetabbedpane

Cmfcoutlookbar

Wymagania

Nagłówek: afxoutlookbar.h

CMFCOutlookBar::AllowDestroyEmptyTabbedPane

Określa, czy można zniszczyć puste okienko z kartami.

virtual BOOL AllowDestroyEmptyTabbedPane() const;

Wartość zwracana

WARTOŚĆ TRUE, jeśli można zniszczyć puste okienko z kartami; w przeciwnym razie, FAŁSZ. Domyślna implementacja zawsze zwraca wartość TRUE.

Uwagi

Jeśli nie można zniszczyć pustego okienka z kartami, zamiast tego struktura je ukrywa.

CMFCOutlookBar::CanAcceptPane

Określa, czy do okienka paska programu Outlook można zadokować inne okienko.

virtual BOOL CanAcceptPane(const CBasePane* pBar) const;

Parametry

Pasek p
[in] Wskaźnik do innego okienka, który jest zadokowany do tego okienka.

Wartość zwracana

WARTOŚĆ TRUE, jeśli do okienka paska programu Outlook można zadokować inne okienko; w przeciwnym razie FAŁSZ.

Uwagi

Jeśli pasek programu Outlook jest w trybie programu Outlook 2003, dockowanie nie jest obsługiwane, więc zwracana wartość to FALSE.

Jeśli parametr pBar ma wartość NULL, ta metoda zwraca wartość FALSE.

W przeciwnym razie ta metoda zachowuje się jako metoda podstawowa CBasePane::CanAcceptPane, z tą różnicą, że nawet jeśli dockowanie nie jest włączone, pasek programu Outlook może nadal umożliwić zadokowanie innego paska programu Outlook.

CMFCOutlookBar::CanSetCaptionTextToTabName

Określa, czy podpis okienka z kartami wyświetla ten sam tekst co aktywna karta.

virtual BOOL CanSetCaptionTextToTabName() const;

Wartość zwracana

Wartość TRUE, jeśli okno paska programu Outlook podpis jest automatycznie ustawione na tekst aktywnej karty; w przeciwnym razie wartość FALSE.

Uwagi

Użyj CBaseTabbedPane::EnableSetCaptionTextToTabName , aby włączyć lub wyłączyć tę funkcję.

W trybie programu Outlook 2003 to ustawienie jest zawsze włączone.

CMFCOutlookBar::Create

Tworzy kontrolkę paska programu Outlook.

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

Parametry

lpszCaption
[in] Określa okno podpis.

pParentWnd
[in] Określa wskaźnik do okna nadrzędnego. Nie może mieć wartości NULL.

Rect
[in] Określa rozmiar i położenie paska programu Outlook w pikselach.

Nid
[in] Określa identyfikator kontrolki. Musi być różna od innych identyfikatorów kontrolek używanych w aplikacji.

Dwstyle
[in] Określa żądany styl paska sterowania. Aby uzyskać możliwe wartości, zobacz Style okien.

dwControlBarStyle
[in] Określa specjalne style zdefiniowane przez bibliotekę.

Pcontext
[in] Utwórz kontekst.

Wartość zwracana

Nonzero, jeśli metoda zakończyła się pomyślnie; w przeciwnym razie 0.

Uwagi

Obiekt jest konstruowany CMFCOutlookBar w dwóch krokach. Najpierw wywołaj konstruktor, a następnie wywołaj Createmetodę , która tworzy kontrolkę paska programu Outlook i dołącza ją do CMFCOutlookBar obiektu.

Zobacz CBasePane::CreateEx , aby uzyskać listę dostępnych stylów zdefiniowanych przez bibliotekę, które mają być określone przez dwControlBarStyle.

Przykład

W poniższym przykładzie pokazano, jak używać Create metody CMFCOutlookBar klasy . Ten fragment kodu jest częścią przykładu z wieloma widokami programu 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

Tworzy niestandardową kartę paska programu Outlook.

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

Parametry

lpszPageName
[in] Etykieta strony.

bActivatePage
[in] Jeśli wartość TRUE, strona stanie się aktywna podczas tworzenia.

dwEnabledDocking
[in] Kombinacja flag CBRS_ALIGN_, która określa włączone strony dokowania, gdy strona jest odłączona.

bEnableTextLabels
[in] Jeśli wartość TRUE, etykiety tekstowe są włączone dla przycisków znajdujących się na stronie.

Wartość zwracana

Wskaźnik do nowo utworzonej strony lub wartość NULL, jeśli tworzenie nie powiodło się.

Uwagi

Ta metoda umożliwia użytkownikom tworzenie niestandardowych stron paska programu Outlook. Możesz utworzyć maksymalnie 100 stron na aplikację. Identyfikatory kontrolek strony zaczynają się od 0xF000. Tworzenie nie powiedzie się, jeśli łączna liczba niestandardowych stron paska programu Outlook przekracza 100.

Użyj polecenia CMFCOutlookBar::RemoveCustomPage , aby usunąć strony niestandardowe.

CMFCOutlookBar::D oesAllowDynInsertBefore

Określa, czy użytkownik może zadokować okienko na zewnętrznej krawędzi paska programu Outlook.

DECLARE_MESSAGE_MAP virtual BOOL DoesAllowDynInsertBefore() const;

Wartość zwracana

Domyślna implementacja zwraca wartość FALSE.

Uwagi

Struktura wywołuje metodę DoesAllowDynInsertBefore , gdy szuka lokalizacji w celu zadokowania okienka dynamicznego. Jeśli funkcja zwraca wartość FALSE, struktura nie zezwala na dokowanie żadnego okienka dynamicznego na zewnętrznych krawędziach okienka.

Zazwyczaj pasek programu Outlook jest tworzony jako statyczna kontrolka nieprzecinkowa. Tę funkcję można zastąpić w klasie pochodnej i zwrócić wartość TRUE, aby zmienić to zachowanie.

Uwaga

Ponieważ okienka dynamiczne sprawdzają stan zadokowanych okienek statycznych podczas dokowania, należy zadokować okienka dynamiczne po okienkach statycznych zawsze, gdy jest to możliwe.

CMFCOutlookBar::FloatTab

Unosi okienko.

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

Parametry

Pasek p
[in] Wskaźnik do okienka, aby upłynąć zmiennoprzecinkowy.

nTabID
[in] Indeks oparty na wartości zerowej karty do zmiennoprzecinkowej.

dockMethod
[in] Określa metodę używaną do upłynięcia okienka. Aby uzyskać więcej informacji, zobacz CBaseTabbedPane::FloatTab.

bHide
[in] PRAWDA, aby ukryć okienko przed przestawnym; w przeciwnym razie, FAŁSZ. W przeciwieństwie do wersji klasy bazowej tej metody ten parametr nie ma wartości domyślnej.

Wartość zwracana

WARTOŚĆ TRUE, jeśli okienko unosiło się; w przeciwnym razie, FAŁSZ.

Uwagi

Ta metoda jest podobna do CBaseTabbedPane::FloatTab , z tą różnicą, że nie włącza ostatniej pozostałej karty na kontrolce paska programu Outlook, aby upłynąć zmiennoprzecinkowe.

CMFCOutlookBar::GetButtonsFont

Zwraca czcionkę tekstu na kartach przycisków strony paska programu Outlook.

CFont* GetButtonsFont() const;

Wartość zwracana

Wskaźnik do obiektu czcionki używanego do wyświetlania tekstu na kartach przycisków strony paska programu Outlook.

Uwagi

Użyj tej funkcji, aby pobrać czcionkę używaną do wyświetlania tekstu na kartach przycisków strony programu Outlook. Czcionkę można ustawić, wywołując polecenie CMFCOutlookBar::SetButtonsFont.

CMFCOutlookBar::GetTabArea

Określa rozmiar i położenie obszarów kart na pasku programu Outlook.

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

Parametry

rectTabAreaTop
[out] Zawiera rozmiar i położenie (we współrzędnych klienta) górnego obszaru karty po powrocie funkcji.

rectTabAreaBottom
[out] Zawiera rozmiar i położenie (we współrzędnych klienta) dolnego obszaru karty po powrocie funkcji.

Uwagi

Struktura wywołuje tę metodę, aby określić typ zadokowania do okienka docelowego. Gdy platforma ustali, że użytkownik przeciąga okienko do zadokowania nad obszarem karty okienka docelowego, próbuje dodać pierwsze okienko jako nową kartę okienka docelowego. W przeciwnym razie próbuje zadokować pierwsze okienko po odpowiedniej stronie okienka docelowego. Struktura tworzy nowy kontener z suwakiem, aby pomieścić dodatkowe zadokowane okienko.

Domyślna implementacja GetTabArea zwraca cały obszar klienta paska programu Outlook, jeśli pasek programu Outlook jest statyczny. Oznacza to, że jeśli pasek programu Outlook nie może unosić się zmiennoprzecinkowy. W przeciwnym razie zwraca obszar, który przyciski strony są wyświetlane u góry i u dołu kontrolki paska programu Outlook.

Zastąp tę metodę w klasie , CMFCOutlookBar aby zmienić to zachowanie.

CMFCOutlookBar::IsMode2003

Określa, czy zachowanie paska programu Outlook naśladuje działanie programu Microsoft Office Outlook 2003.

BOOL IsMode2003() const;

Wartość zwracana

Niezerowe, jeśli pasek programu Outlook jest uruchomiony w trybie pakietu Microsoft Office 2003; w przeciwnym razie 0.

Uwagi

Ten tryb można włączyć przy użyciu polecenia CMFCOutlookBar::SetMode2003.

CMFCOutlookBar::OnAfterAnimation

Wywoływane przez CMFCOutlookBarTabCtrl::SetActiveTab po ustawieniu aktywnej karty przy użyciu animacji.

virtual void OnAfterAnimation(int nPage);

Parametry

nPage
[in] Indeks na podstawie zera strony karty, który został aktywny.

Uwagi

Efekt wizualny ustawiania aktywnej karty zależy od tego, czy włączono animację. Aby uzyskać więcej informacji, zobacz CMFCOutlookBarTabCtrl::EnableAnimation.

CMFCOutlookBar::OnBeforeAnimation

Wywoływana przez cmFCOutlookBarTabCtrl::SetActiveTab przed ustawieniem strony karty jako aktywna karta przy użyciu animacji.

virtual BOOL OnBeforeAnimation(int nPage);

Parametry

nPage
[in] Indeks na podstawie zera strony karty, który ma zostać ustawiony jako aktywny.

Wartość zwracana

Zwraca wartość TRUE, jeśli animacja powinna być używana w ustawieniu nowej aktywnej karty lub WARTOŚĆ FALSE, jeśli animacja powinna być wyłączona.

Uwagi

CMFCOutlookBar::OnScroll

Wywoływana przez platformę, jeśli pasek programu Outlook przewija się w górę lub w dół.

virtual void OnScroll(BOOL bDown);

Parametry

bDown
[in] Wartość TRUE, jeśli pasek programu Outlook przewija się w dół lub FAŁSZ, jeśli przewija się w górę.

Uwagi

CMFCOutlookBar::RemoveCustomPage

Usuwa niestandardową stronę karty paska programu Outlook.

BOOL RemoveCustomPage(
    UINT uiPage,
    CMFCOutlookBarTabCtrl* pTargetWnd);

Parametry

uiPage
[in] Indeks na podstawie zera strony w nadrzędnym oknie programu Outlook.

pTargetWnd
[in] Wskaż nadrzędne okno programu Outlook.

Wartość zwracana

Niezerowe, jeśli strona niestandardowa została pomyślnie usunięta; w przeciwnym razie 0.

Uwagi

Wywołaj tę funkcję, aby usunąć strony niestandardowe. Gdy strona zostanie usunięta, jej identyfikator kontrolki zostanie zwrócony do puli dostępnych identyfikatorów.

Należy podać wskaźnik do obiektu klasy CMFCOutlookBarTabCtrl, w którym obecnie znajduje się strona do usunięcia. Należy pamiętać, że użytkownik może przenosić odłączane strony między różnymi paskami programu Outlook, ale informacje o stronie niestandardowej znajdują się w obiekcie paska programu Outlook, dla którego nazwana jest CMFCOutlookBar::CreateCustomPage.

Użyj CBaseTabbedPane::GetUnderlyingWindow , aby uzyskać wskaźnik do okna programu Outlook.

CMFCOutlookBar::SetButtonsFont

Ustawia czcionkę tekstu na przyciskach paska programu Outlook.

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

Parametry

pFont
[in] Określa nową czcionkę.

bRedraw
[in] Jeśli wartość TRUE, pasek programu Outlook zostanie ponownie narysowane.

Uwagi

Użyj tej metody, aby ustawić czcionkę dla tekstu wyświetlanego na przyciskach strony karty programu Outlook.

CMFCOutlookBar::SetMode2003

Określa, czy zachowanie paska programu Outlook naśladuje działanie programu Outlook 2003.

void SetMode2003(BOOL bMode2003=TRUE);

Parametry

bMode2003
[in] Jeśli wartość TRUE, tryb office 2003 jest włączony.

Uwagi

Ta funkcja służy do włączania lub wyłączania trybu pakietu Office 2003. W tym trybie pasek programu Outlook ma dodatkowy pasek narzędzi z przyciskiem dostosowywania. Zachowanie paska programu Outlook jest zgodne z zachowaniem paska programu Outlook w pakiecie Microsoft Office 2003.

Domyślnie ten tryb jest wyłączony.

Uwaga

Ta funkcja musi być wywoływana przed cmFCOutlookBar::Create.

Zobacz też

Wykres hierarchii
Klasy
Klasa CBaseTabbedPane
Klasa CMFCOutlookBarTabCtrl
Klasa CMFCOutlookBarPane