Sdílet prostřednictvím


CMFCOutlookBar – třída

Podokno s kartami s vizuálním vzhledem navigačního podokna v aplikaci Microsoft Outlook 2000 nebo Outlook 2003. Objekt CMFCOutlookBar obsahuje CMFCOutlookBarTabCtrl Class objekt a řadu karet. Karty mohou být buď CMFCOutlookBarPane Třídy objekty nebo CWnd-odvozené objekty. Pro uživatele se panel Outlooku zobrazí jako řada tlačítek a oblasti zobrazení. Když uživatel klikne na tlačítko, zobrazí se odpovídající podokno ovládacího prvku nebo tlačítka.

Syntaxe

class CMFCOutlookBar : public CBaseTabbedPane

Členové

Veřejné konstruktory

Název Popis
CMFCOutlookBar::CMFCOutlookBar Výchozí konstruktor.
CMFCOutlookBar::~CMFCOutlookBar Destruktor.

Veřejné metody

Název Popis
CMFCOutlookBar::AllowDestroyEmptyTabbedPane Určuje, jestli je možné zničit prázdné podokno s kartami. (Přepsání CBaseTabbedPane::AllowDestroyEmptyTabbedPane.)
CMFCOutlookBar::CanAcceptPane Určuje, zda lze dokovat jiné podokno do podokna panelu Outlooku. (Přepisuje CDockablePane::CanAcceptPane.)
CMFCOutlookBar::CanSetCaptionTextToTabName Určuje, zda titulek pro podokno s kartami zobrazuje stejný text jako aktivní karta. (Přepisuje CBaseTabbedPane::CanSetCaptionTextToTabName.)
CMFCOutlookBar::Create Vytvoří ovládací prvek panelu Outlooku.
CMFCOutlookBar::CreateCustomPage Vytvoří vlastní kartu panelu Outlooku.
CMFCOutlookBar::CreateObject Používá se architekturou k vytvoření dynamické instance tohoto typu třídy.
CMFCOutlookBar::D oesAllowDynInsertBefore Určuje, zda uživatel může ukotvit ovládací panel na vnějším okraji panelu Outlooku.
CMFCOutlookBar::FloatTab Plovoucí podokno, ale pouze v případě, že je podokno aktuálně umístěné na odpojené kartě. (Přepíše CBaseTabbedPane::FloatTab.)
CMFCOutlookBar::GetButtonsFont Vrátí písmo textu na tlačítkách na panelu Outlooku.
CMFCOutlookBar::GetTabArea Vrátí velikost a umístění oblastí karet na panelu Outlooku. (Přepsání CBaseTabbedPane::GetTabArea.)
CMFCOutlookBar::GetThisClass Používá se architekturou k získání ukazatele na CRuntimeClass objektu, který je přidružen k tomuto typu třídy.
CMFCOutlookBar::IsMode2003 Určuje, zda chování pruhu Aplikace Outlook napodobuje, že aplikace Microsoft Office Outlook 2003 (viz poznámky).
CMFCOutlookBar::OnAfterAnimation Volal CMFCOutlookBarTabCtrl::SetActiveTab po nastavení aktivní karty pomocí animace.
CMFCOutlookBar::OnBeforeAnimation Volal CMFCOutlookBarTabCtrl::SetActiveTab před stránkou karty je nastaven jako aktivní karta pomocí animace.
CMFCOutlookBar::OnScroll Volá se rozhraním, pokud se panel Outlooku posunuje nahoru nebo dolů.
CMFCOutlookBar::RemoveCustomPage Odebere vlastní kartu panelu Outlooku.
CMFCOutlookBar::SetButtonsFont Nastaví písmo textu na tlačítkách na panelu Outlooku.
CMFCOutlookBar::SetMode2003 Určuje, jestli chování panelu Outlooku napodobuje chování Outlooku 2003 (viz Poznámky).

Poznámky

Příklad pruhu Outlooku najdete v ukázce Aplikace OutlookDemo: MFC Aplikace OutlookDemo.

Implementace panelu Outlooku

CMFCOutlookBar Pokud chcete ovládací prvek použít ve vaší aplikaci, postupujte takto:

  1. CMFCOutlookBar Vložte objekt do třídy okna hlavního rámce.

    class CMainFrame : public CMDIFrameWnd
    {
        // ...
        CMFCOutlookBar m_wndOutlookBar;
        CMFCOutlookBarPane m_wndOutlookPane;
        // ...
    };
    
  2. Při zpracování WM_CREATE zprávy v hlavním rámečku zavolejte CMFCOutlookBar::Create metoda pro vytvoření ovládacího prvku Karta pruhu Aplikace Outlook.

    m_wndOutlookBar.Create (_T("Shortcuts"),
        this,
        CRect (0, 0, 100, 100),
        ID_VIEW_OUTLOOKBAR,
        WS_CHILD | WS_VISIBLE | CBRS_LEFT);
    
  3. Získání ukazatele na podklad CMFCOutlookBarTabCtrl pomocí CBaseTabbedPane::GetUnderlyingWindow.

    CMFCOutlookBarTabCtrl* pOutlookBar = (CMFCOutlookBarTabCtrl*) m_wndOutlookBar.GetUnderlyingWindow ();
    
  4. Vytvořte CMFCOutlookBarPane Class objekt pro každou kartu, která obsahuje tlačítka.

    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. Volání CMFCOutlookBarTabCtrl::AddTab pro přidání každé nové karty. Nastavte parametr bDetachable na HODNOTU FALSE, aby byla stránka odpojena. Nebo použijte CMFCOutlookBarTabCtrl::AddControl k přidání odpojených stránek.

    pOutlookBar->AddTab (&m_wndOutlookPane, "General", (UINT) -1, TRUE);
    
  6. Chcete-li přidat -odvozený CWndovládací prvek (například CMFCShellTreeCtrl Třída) jako kartu, vytvořte ovládací prvek a volání CMFCOutlookBarTabCtrl::AddTab jej přidejte do panelu Outlooku.

Poznámka:

Pro každý objekt třídy CMFCOutlookBarPane a pro každý CWnd-odvozený objekt byste měli použít jedinečná ID ovládacích prvků.

Pokud chcete dynamicky přidávat nebo odstraňovat nové stránky za běhu, použijte CMFCOutlookBar::CreateCustomPage a CMFCOutlookBar::RemoveCustomPage.

Režim Outlooku 2003

V režimu Outlooku 2003 jsou tlačítka karet umístěná v dolní části podokna panelu Outlooku. Pokud není k zobrazení tlačítek dostatek místa, zobrazí se jako ikony v oblasti podobné panelu nástrojů v dolní části podokna.

K povolení režimu Aplikace Outlook 2003 použijte CMFCOutlookBar::SetMode2003 . Pomocí příkazu CMFCOutlookBarTabCtrl::SetToolbarImageList nastavte rastrový obrázek obsahující ikony zobrazené v dolní části panelu Outlooku. Ikony v rastrovém obrázku musí být seřazené podle indexu tabulátoru.

Hierarchie dědičnosti

Objekt CObject

CCmdTarget

CWnd

CBasePane

Podokno CPane

CDockablePane

CBaseTabbedPane

CMFCOutlookBar

Požadavky

Záhlaví: afxoutlookbar.h

CMFCOutlookBar::AllowDestroyEmptyTabbedPane

Určuje, jestli je možné zničit prázdné podokno s kartami.

virtual BOOL AllowDestroyEmptyTabbedPane() const;

Návratová hodnota

TRUE, pokud je možné zničit prázdné podokno s kartami; jinak NEPRAVDA. Výchozí implementace vždy vrátí hodnotu TRUE.

Poznámky

Pokud prázdné podokno s kartami nelze zničit, architektura ho místo toho skryje.

CMFCOutlookBar::CanAcceptPane

Určuje, zda lze dokovat jiné podokno do podokna panelu Outlooku.

virtual BOOL CanAcceptPane(const CBasePane* pBar) const;

Parametry

pBar
[v] Ukazatel na jiné podokno, které je ukotveno k tomuto podoknu.

Návratová hodnota

TRUE, pokud je možné dokovat jiné podokno do podokna panelu Outlooku; jinak NEPRAVDA.

Poznámky

Pokud je panel Outlooku v režimu Outlooku 2003, ukotvení se nepodporuje, takže návratová hodnota je NEPRAVDA.

Pokud je parametr pBar NULL, vrátí tato metoda hodnotu FALSE.

V opačném případě se tato metoda chová jako základní metoda CBasePane::CanAcceptPane, s tím rozdílem, že i když ukotvení není povolené, panel Outlooku může i nadále povolit, aby byl další panel Outlooku ukotvený.

CMFCOutlookBar::CanSetCaptionTextToTabName

Určuje, zda titulek podokna s kartami zobrazuje stejný text jako aktivní karta.

virtual BOOL CanSetCaptionTextToTabName() const;

Návratová hodnota

TRUE, pokud je titulek okna pruhu Outlooku automaticky nastaven na text aktivní karty; jinak NEPRAVDA.

Poznámky

K povolení nebo zakázání této funkce použijte CBaseTabbedPane::EnableSetCaptionTextToTabName .

V režimu Outlooku 2003 je toto nastavení vždy povolené.

CMFCOutlookBar::Create

Vytvoří ovládací prvek panelu Outlooku.

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

Parametry

lpszCaption
[v] Určuje titulek okna.

pParentWnd
[v] Určuje ukazatel na nadřazené okno. Nesmí mít hodnotu NULL.

Rect
[v] Určuje velikost a umístění pruhu outlooku v pixelech.

Nid
[v] Určuje ID ovládacího prvku. Musí se lišit od jiných ID ovládacích prvků používaných v aplikaci.

dwStyle
[v] Určuje požadovaný styl řídicího panelu. Možné hodnoty najdete v části Styly oken.

dwControlBarStyle
[v] Určuje speciální styly definované knihovnou.

pContext
[v] Vytvořit kontext.

Návratová hodnota

Nenulové, pokud je metoda úspěšná; jinak 0.

Poznámky

Objekt vytvoříte CMFCOutlookBar ve dvou krocích. Nejprve zavolejte konstruktor a potom volání Create, který vytvoří ovládací prvek panelu aplikace Outlook a připojí ho k objektu CMFCOutlookBar .

Viz CBasePane::CreateEx pro seznam dostupných stylů definovaných knihovnou, které mají být určeny dwControlBarStyle.

Příklad

Následující příklad ukazuje, jak použít Create metodu CMFCOutlookBar třídy. Tento fragment kódu je součástí ukázky více zobrazení Aplikace 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

Vytvoří vlastní kartu panelu Outlooku.

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

Parametry

lpszPageName
[v] Popisek stránky.

bActivatePage
[v] Pokud je hodnota TRUE, stránka se při vytváření aktivuje.

dwEnabledDocking
[v] Kombinace CBRS_ALIGN_ příznaků, které určují povolené ukotvení stran při odpojení stránky.

bEnableTextLabels
[v] Pokud je hodnota TRUE, jsou pro tlačítka umístěná na stránce povolená popisky textu.

Návratová hodnota

Ukazatel na nově vytvořenou stránku nebo hodnotu NULL, pokud se vytvoření nezdařilo.

Poznámky

Pomocí této metody můžete uživatelům povolit vytváření vlastních stránek na panelu Outlooku. Na aplikaci můžete vytvořit až 100 stránek. ID ovládacího prvku stránky začínají 0xF000. Vytvoření selže, pokud celkový počet vlastních stránek pruhu Outlooku překročí 100.

K odstranění vlastních stránek použijte CMFCOutlookBar::RemoveCustomPage .

CMFCOutlookBar::D oesAllowDynInsertBefore

Určuje, jestli uživatel může ukotvit podokno na vnějším okraji panelu Outlooku.

DECLARE_MESSAGE_MAP virtual BOOL DoesAllowDynInsertBefore() const;

Návratová hodnota

Výchozí implementace vrátí hodnotu FALSE.

Poznámky

Architektura volá metodu DoesAllowDynInsertBefore , když hledá umístění pro ukotvení dynamického podokna. Pokud funkce vrátí hodnotu NEPRAVDA, architektura neumožňuje ukotvení žádného dynamického podokna na vnějších okrajích podokna.

Obvykle vytvoříte panel Outlooku jako statický ne plovoucí ovládací prvek. Tuto funkci můžete přepsat v odvozené třídě a vrátit hodnotu TRUE, abyste toto chování změnili.

Poznámka:

Vzhledem k tomu, že dynamické podokna kontrolují stav ukotvených statických podoken při ukotvení, měli byste dynamické podokna ukotvit po statických podokenách, kdykoli je to možné.

CMFCOutlookBar::FloatTab

Vytvoří plovoucí podokno.

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

Parametry

pBar
[v] Ukazatel na podokno, které má být plovoucí.

nTabID
[v] Index tabulátoru založený na nule, který má být plovoucí.

dockMethod
[v] Určuje metodu, která se má použít k vytvoření plovoucího podokna. Další informace naleznete v tématu CBaseTabbedPane::FloatTab.

bHide
[v] TRUE pro skrytí podokna před plovoucí desetinnou čárkou; jinak NEPRAVDA. Na rozdíl od verze základní třídy této metody nemá tento parametr výchozí hodnotu.

Návratová hodnota

TRUE, pokud je podokno plovoucí; jinak NEPRAVDA.

Poznámky

Tato metoda je jako CBaseTabbedPane::FloatTab s tím rozdílem, že nepovoluje poslední zbývající kartu na ovládacím prvku panelu Aplikace Outlook plovoucí.

CMFCOutlookBar::GetButtonsFont

Vrátí písmo textu na kartách tlačítek stránky na panelu Outlooku.

CFont* GetButtonsFont() const;

Návratová hodnota

Ukazatel na objekt písma, který se používá k zobrazení textu na kartách tlačítek stránky na panelu Outlooku.

Poznámky

Pomocí této funkce můžete načíst písmo, které slouží k zobrazení textu na kartách tlačítek stránky Outlooku. Písmo můžete nastavit voláním CMFCOutlookBar ::SetButtonsFont.

CMFCOutlookBar::GetTabArea

Určuje velikost a umístění oblastí karet na panelu Outlooku.

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

Parametry

rectTabAreaTop
[ven] Obsahuje velikost a umístění (v souřadnicích klienta) horní oblasti tabulátoru při vrácení funkce.

rectTabAreaBottom
[ven] Obsahuje velikost a umístění (v souřadnicích klienta) oblasti dolní karty při vrácení funkce.

Poznámky

Architektura volá tuto metodu k určení typu ukotvení do cílového podokna. Když architektura určuje, že uživatel přetáhne podokno, které se má ukotvit přes oblast karet cílového podokna, pokusí se přidat první podokno jako novou kartu cílového podokna. V opačném případě se pokusí ukotvit první podokno na odpovídající straně cílového podokna. Architektura vytvoří nový kontejner s posuvníkem pro přizpůsobení dalšího ukotveného podokna.

Výchozí implementace GetTabArea vrátí celou klientskou oblast panelu Outlooku, pokud je panel Outlooku statický. To znamená, že pokud panel Outlooku nemůže plovoucí. V opačném případě vrátí oblast, kterou tlačítka stránky přebírají v horní a dolní části ovládacího prvku panelu Outlooku.

Přepište tuto metodu ve třídě odvozené od CMFCOutlookBar změny tohoto chování.

CMFCOutlookBar::IsMode2003

Určuje, jestli chování panelu Outlooku napodobuje chování aplikace Microsoft Office Outlook 2003.

BOOL IsMode2003() const;

Návratová hodnota

Nenulové, pokud je panel Outlooku spuštěný v režimu systém Microsoft Office 2003; jinak 0.

Poznámky

Tento režim můžete povolit pomocí CMFCOutlookBar::SetMode2003.

CMFCOutlookBar::OnAfterAnimation

Volal CMFCOutlookBarTabCtrl::SetActiveTab po nastavení aktivní karty pomocí animace.

virtual void OnAfterAnimation(int nPage);

Parametry

nPage
[v] Index karty založený na nule, která byla aktivní.

Poznámky

Vizuální efekt nastavení aktivní karty závisí na tom, jestli jste povolili animaci. Další informace naleznete v tématu CMFCOutlookBarTabCtrl::EnableAnimation.

CMFCOutlookBar::OnBeforeAnimation

Volal CMFCOutlookBarTabCtrl::SetActiveTab před stránkou karty je nastaven jako aktivní karta pomocí animace.

virtual BOOL OnBeforeAnimation(int nPage);

Parametry

nPage
[v] Index karty založený na nule, který se chystá nastavit jako aktivní.

Návratová hodnota

Vrátí hodnotu PRAVDA, pokud by se animace měla použít při nastavení nové aktivní karty nebo NEPRAVDA, pokud by měla být animace zakázaná.

Poznámky

CMFCOutlookBar::OnScroll

Volá se rozhraním, pokud se panel Outlooku posunuje nahoru nebo dolů.

virtual void OnScroll(BOOL bDown);

Parametry

bDown
[v] TRUE, pokud se panel Outlooku posunuje dolů, nebo NEPRAVDA, pokud se posouvá nahoru.

Poznámky

CMFCOutlookBar::RemoveCustomPage

Odebere vlastní stránku karty panelu Outlooku.

BOOL RemoveCustomPage(
    UINT uiPage,
    CMFCOutlookBarTabCtrl* pTargetWnd);

Parametry

uiPage
[v] Index stránky založený na nule v nadřazeném okně Outlooku

pTargetWnd
[v] Ukazatel na nadřazené okno Aplikace Outlook.

Návratová hodnota

Nenulové, pokud byla vlastní stránka úspěšně odebrána; jinak 0.

Poznámky

Voláním této funkce odstraníte vlastní stránky. Když se stránka odebere, vrátí se id ovládacího prvku do fondu dostupných ID.

Je nutné zadat ukazatel na CMFCOutlookBarTabCtrl Třída objektu, ve kterém se stránka, která má být odebrána aktuálně nachází. Všimněte si, že uživatel může přesouvat odpojené stránky mezi různými pruhy Outlooku, ale informace o vlastní stránce se nacházejí v objektu pruhu Outlooku, pro který jste volali CMFCOutlookBar::CreateCustomPage.

K získání ukazatele na okno Aplikace Outlook použijte CBaseTabbedPane::GetUnderlyingWindow .

CMFCOutlookBar::SetButtonsFont

Nastaví písmo textu na tlačítkách na panelu Outlooku.

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

Parametry

pFont
[v] Určuje nové písmo.

bRedraw
[v] Pokud je hodnota TRUE, překreslí se panel Outlooku.

Poznámky

Tato metoda slouží k nastavení písma pro text zobrazený na tlačítkách stránek na kartě outlooku.

CMFCOutlookBar::SetMode2003

Určuje, jestli chování panelu Outlooku napodobuje chování Outlooku 2003.

void SetMode2003(BOOL bMode2003=TRUE);

Parametry

bMode2003
[v] Pokud je hodnota TRUE, je povolený režim Office 2003.

Poznámky

Tato funkce slouží k povolení nebo zakázání režimu Office 2003. V tomto režimu má panel Outlooku další panel nástrojů s tlačítkem pro přizpůsobení. Chování panelu Outlooku odpovídá chování panelu Outlooku v systém Microsoft Office 2003.

Ve výchozím nastavení je tento režim zakázaný.

Poznámka:

Tato funkce musí být volána před CMFCOutlookBar::Create.

Viz také

Graf hierarchie
Třídy
CBaseTabbedPane – třída
CMFCOutlookBarTabCtrl – třída
CMFCOutlookBarPane – třída