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:
CMFCOutlookBar
Vložte objekt do třídy okna hlavního rámce.class CMainFrame : public CMDIFrameWnd { // ... CMFCOutlookBar m_wndOutlookBar; CMFCOutlookBarPane m_wndOutlookPane; // ... };
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);
Získání ukazatele na podklad
CMFCOutlookBarTabCtrl
pomocí CBaseTabbedPane::GetUnderlyingWindow.CMFCOutlookBarTabCtrl* pOutlookBar = (CMFCOutlookBarTabCtrl*) m_wndOutlookBar.GetUnderlyingWindow ();
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);
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);
Chcete-li přidat -odvozený
CWnd
ovlá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
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