Share via


CMFCOutlookBar クラス

Microsoft Outlook 2000 または Outlook 2003 の ナビゲーション ウィンドウ と同じ外観を持つタブ付きペインです。 オブジェクトには CMFCOutlookBarCMFCOutlookBarTabCtrl クラス オブジェクトと一連のタブが含まれています。 タブには、CMFCOutlookBarPane クラス オブジェクトまたは CWnd-derived オブジェクトのいずれかを指定できます。 ユーザーに対しては、Outlook バーは一連のボタンおよび表示領域として表示されます。 ユーザーがボタンをクリックすると、対応するコントロールまたはボタン ペインが表示されます。

構文

class CMFCOutlookBar : public CBaseTabbedPane

メンバー

パブリック コンストラクター

名前 説明
CMFCOutlookBar::CMFCOutlookBar 既定のコンストラクターです。
CMFCOutlookBar::~CMFCOutlookBar デストラクターです。

パブリック メソッド

名前 説明
CMFCOutlookBar::AllowDestroyEmptyTabbedPane 空のタブ付きペインを破棄できるかどうかを指定します。 (オーバーライド CBaseTabbedPane::AllowDestroyEmptyTabbedPane.)
CMFCOutlookBar::CanAcceptPane 別のウィンドウを Outlook バー ウィンドウにドッキングできるかどうかを指定します。 (CDockablePane::CanAcceptPane をオーバーライドします)。
CMFCOutlookBar::CanSetCaptionTextToTabName タブ付きペインのキャプションがアクティブなタブと同じテキストを表示するかどうかを指定します (CBaseTabbedPane::CanSetCaptionTextToTabName をオーバーライドします)。
CMFCOutlookBar::Create Outlook バー コントロールを作成します。
CMFCOutlookBar::CreateCustomPage カスタム Outlook バー タブを作成します。
CMFCOutlookBar::CreateObject このクラス型の動的インスタンスを作成するために、フレームワークで使用されます。
CMFCOutlookBar::D oesAllowDynInsertBefore ユーザーが Outlook バーの外側の端にコントロール バーをドッキングできるかどうかを決定します。
CMFCOutlookBar::FloatTab ペインが現在デタッチ可能なタブに存在する場合にのみ、ペインを浮動表示します (CBaseTabbedPane::FloatTab をオーバーライドします)。
CMFCOutlookBar::GetButtonsFont Outlook バーのボタンのテキストのフォントを返します。
CMFCOutlookBar::GetTabArea Outlook バーのタブ領域のサイズと位置を返します。 (オーバーライド CBaseTabbedPane::GetTabArea.)
CMFCOutlookBar::GetThisClass このクラス型に関連付けられている CRuntimeClass オブジェクトへのポインターを取得するためにフレームワークによって使用されます。
CMFCOutlookBar::IsMode2003 Outlook バーの動作が Microsoft Office Outlook 2003 の動作と似ているかどうかを判断します (「解説」を参照)。
CMFCOutlookBar::OnAfterAnimation アニメーションを使用してアクティブなタブが設定された後、CMFCOutlookBarTabCtrl::SetActiveTab によって呼び出されます。
CMFCOutlookBar::OnBeforeAnimation アニメーションを使用してタブ ページがアクティブ タブとして設定される前に、CMFCOutlookBarTabCtrl::SetActiveTab によって呼び出されます。
CMFCOutlookBar::OnScroll Outlook バーが上下にスクロールしている場合に、フレームワークによって呼び出されます。
CMFCOutlookBar::RemoveCustomPage カスタム Outlook バー タブを削除します。
CMFCOutlookBar::SetButtonsFont Outlook バーのボタンのテキストのフォントを設定します。
CMFCOutlookBar::SetMode2003 Outlook バーの動作が Outlook 2003 の動作と同じかどうかを指定します (「解説」を参照)。

解説

Outlook バーの例については、「OutlookDemo サンプル: MFC OutlookDemo アプリケーション」を参照してください

Outlook バーの実装

アプリケーションで、CMFCOutlookBar コントロールを使用するには、次の手順に従います。

  1. CMFCOutlookBar オブジェクトをメイン フレーム ウィンドウ クラスに埋め込みます。

    class CMainFrame : public CMDIFrameWnd
    {
        // ...
        CMFCOutlookBar m_wndOutlookBar;
        CMFCOutlookBarPane m_wndOutlookPane;
        // ...
    };
    
  2. メイン フレームでWM_CREATE メッセージを処理する場合は、CMFCOutlookBar::Create メソッドを呼び出して Outlook バー タブ コントロールを作成します。

    m_wndOutlookBar.Create (_T("Shortcuts"),
        this,
        CRect (0, 0, 100, 100),
        ID_VIEW_OUTLOOKBAR,
        WS_CHILD | WS_VISIBLE | CBRS_LEFT);
    
  3. CBaseTabbedPane::GetUnderlyingWindow を使用して、基になるCMFCOutlookBarTabCtrlオブジェクトへのポインターを取得します。

    CMFCOutlookBarTabCtrl* pOutlookBar = (CMFCOutlookBarTabCtrl*) m_wndOutlookBar.GetUnderlyingWindow ();
    
  4. ボタンを 含むタブごとに CMFCOutlookBarPane クラス オブジェクトを作成します。

    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. CMFCOutlookBarTabCtrl::AddTab を呼び出して新しいタブを追加します。bDetachable パラメーターを FAL Standard Edition に設定して、ページをデタッチ不可にします。 または、CMFCOutlookBarTabCtrl::AddControl を使用してデタッチ可能なページを追加します。

    pOutlookBar->AddTab (&m_wndOutlookPane, "General", (UINT) -1, TRUE);
    
  6. 派生コントロール (CMFCShellTreeCtrl クラスなど) をタブとして追加CWndするには、コントロールを作成し、CMFCOutlookBarTabCtrl::AddTab を呼び出して Outlook バーに追加します。

Note

CMFCOutlookBarPane クラス オブジェクトごとに、および各CWnd派生オブジェクトに対して、一意のコントロール ID を使用する必要があります。

実行時に新しいページを動的に追加または削除するには、CMFCOutlookBar::CreateCustomPageCMFCOutlookBar::RemoveCustomPage を使用します。

Outlook 2003 モード

Outlook 2003 モードでは、タブ ボタンは Outlook バー ウィンドウの下部に配置されます。 ボタンを表示するのに十分な領域がない場合は、ウィンドウの下部にあるツール バーのような領域にアイコンとして表示されます。

CMFCOutlookBar::SetMode2003 を使用して Outlook 2003 モードを有効にします。 CMFCOutlookBarTabCtrl::SetToolbarImageList を使用して Outlook バーの下部に表示されるアイコンを含むビットマップを設定します。 ビットマップ内のアイコンはタブ インデックス順に並べ替える必要があります。

継承階層

CObject

CCmdTarget

CWnd

CBasePane

Cpane

CDockablePane

CBaseTabbedPane

CMFCOutlookBar

必要条件

ヘッダー: afxoutlookbar.h

CMFCOutlookBar::AllowDestroyEmptyTabbedPane

空のタブ付きペインを破棄できるかどうかを指定します。

virtual BOOL AllowDestroyEmptyTabbedPane() const;

戻り値

空のタブ付きペインを破棄できる場合は TRUE。それ以外の場合は FAL Standard Edition。 既定の実装では常に TRUE が返されます。

解説

空のタブ付きペインを破棄できない場合は、代わりにフレームワークによって非表示になります。

CMFCOutlookBar::CanAcceptPane

別のウィンドウを Outlook バー ウィンドウにドッキングできるかどうかを指定します。

virtual BOOL CanAcceptPane(const CBasePane* pBar) const;

パラメーター

pBar
[in]このペインにドッキングされている別のペインへのポインター。

戻り値

別のウィンドウを Outlook バー ウィンドウにドッキングできる場合は TRUE。それ以外の場合は FAL Standard Edition。

解説

Outlook バーが Outlook 2003 モードの場合、ドッキングはサポートされていないため、戻り値は FAL Standard Edition。

pBar パラメーターが NULL の場合、このメソッドは FAL Standard Edition を返します。

それ以外の場合、このメソッドは基本メソッド CBasePane::CanAcceptPane として動作します。ただし、ドッキングが有効になっていない場合でも、Outlook バーで別の Outlook バーをドッキングできる点が異なります。

CMFCOutlookBar::CanSetCaptionTextToTabName

タブ付きペインのキャプションに、アクティブなタブと同じテキストを表示するかどうかを指定します。

virtual BOOL CanSetCaptionTextToTabName() const;

戻り値

Outlook バー ウィンドウのキャプションがアクティブなタブのテキストに自動的に設定されている場合は TRUE、それ以外の場合は FAL Standard Edition。

解説

この機能を有効または無効にするには、CBaseTabbedPane::EnableSetCaptionTextToTabName を使用します。

Outlook 2003 モードでは、この設定は常に有効になります。

CMFCOutlookBar::Create

Outlook バー コントロールを作成します。

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

パラメーター

lpszCaption
[in]ウィンドウのキャプションを指定します。

pParentWnd
[in]親ウィンドウへのポインターを指定します。 NULL は指定できません。

rect
[in]Outlook バーのサイズと位置をピクセル単位で指定します。

nID
[in]コントロール ID を指定します。 アプリケーションで使用される他のコントロール ID とは異なる必要があります。

dwStyle
[in]目的のコントロール バーのスタイルを指定します。 使用可能な値については、「ウィンドウ のスタイル」を参照してください

dwControlBarStyle
[in]ライブラリで定義された特殊なスタイルを指定します。

pContext
[in]コンテキストを作成します。

戻り値

メソッドが成功した場合は 0 以外。それ以外の場合は 0。

解説

2 つの手順でオブジェクトを CMFCOutlookBar 構築します。 最初にコンストラクターを呼び出し、次に呼び出 Createします。これにより、Outlook バー コントロールが作成され、オブジェクトに CMFCOutlookBar アタッチされます。

dwControlBarStyle指定できるライブラリ定義スタイルの一覧については、CBasePane::CreateEx を参照してください。

次の例では、クラスのメソッドを使用する Create 方法を CMFCOutlookBar 示します。 このコード スニペットは、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

カスタム Outlook バー タブを作成します。

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

パラメーター

lpszPageName
[in]ページ ラベル。

bActivatePage
[in]TRUE の場合、ページは作成時にアクティブになります。

dwEnabledDocking
[in]ページのデタッチ時に有効なドッキング側を指定するCBRS_ALIGN_ フラグの組み合わせ。

bEnableTextLabels
[in]TRUE の場合、ページ上に存在するボタンに対してテキスト ラベルが有効になります。

戻り値

新しく作成されたページへのポインター。作成に失敗した場合は NULL。

解説

ユーザーがカスタム Outlook バー ページを作成できるようにするには、このメソッドを使用します。 アプリケーションごとに最大 100 ページを作成できます。 ページ コントロール ID は、0xF000から開始されます。 カスタム Outlook バー ページの合計数が 100 を超えると、作成は失敗します。

CMFCOutlookBar::RemoveCustomPage を使用してカスタム ページを削除します。

CMFCOutlookBar::D oesAllowDynInsertBefore

ユーザーが Outlook バーの外側の端にウィンドウをドッキングできるかどうかを指定します。

DECLARE_MESSAGE_MAP virtual BOOL DoesAllowDynInsertBefore() const;

戻り値

既定の実装では FALSE が返されます。

解説

フレームワークは、動的ウィンドウを DoesAllowDynInsertBefore ドッキングする場所を探すときにメソッドを呼び出します。 関数が FAL Standard Edition を返す場合、フレームワークでは、ウィンドウの外側の端にある動的ペインのドッキングは許可されません。

通常は、静的な非フローティング コントロールとして Outlook バーを作成します。 派生クラスでこの関数をオーバーライドし、TRUE を返してこの動作を変更できます。

Note

動的ペインはドッキング時にドッキングされた静的ペインの状態をチェックするため、可能な限り、静的ペインの後に動的ペインをドッキングする必要があります。

CMFCOutlookBar::FloatTab

ペインを浮動表示します。

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

パラメーター

pBar
[in]浮動するペインへのポインター。

nTabID
[in]浮動するタブの 0 から始まるインデックス。

dockMethod
[in]ペインを浮動にするのに使用するメソッドを指定します。 詳細については、「CBaseTabbedPane::FloatTab」を参照 してください

bHide
[in]浮動する前にペインを非表示にする場合は TRUE。それ以外の場合は FAL Standard Edition。 このメソッドの基本クラス バージョンとは異なり、このパラメーターには既定値はありません。

戻り値

ペインが浮動している場合は TRUE。それ以外の場合は FAL Standard Edition。

解説

このメソッドは CBaseTabbedPane::FloatTab に似ていますが、Outlook バー コントロールの最後の [再メイン] タブが浮動しない点が異なります。

CMFCOutlookBar::GetButtonsFont

Outlook バーのページ ボタン タブのテキストのフォントを返します。

CFont* GetButtonsFont() const;

戻り値

Outlook バー ページ のボタン タブにテキストを表示するために使用されるフォント オブジェクトへのポインター。

解説

この関数を使用して、Outlook ページ のボタン タブにテキストを表示するために使用されるフォントを取得します。 CMFCOutlookBar::SetButtonsFont呼び出してフォントを設定できます。

CMFCOutlookBar::GetTabArea

Outlook バーのタブ領域のサイズと位置を指定します。

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

パラメーター

rectTabAreaTop
[out]関数が戻ったときのトップ タブ領域のサイズと位置 (クライアント座標内) を格納します。

rectTabAreaBottom
[out]関数が戻ったときの下部タブ領域のサイズと位置 (クライアント座標内) を格納します。

解説

フレームワークは、このメソッドを呼び出して、ターゲット ウィンドウへのドッキングの種類を決定します。 フレームワークは、ユーザーがターゲット ウィンドウのタブ領域にドッキングするウィンドウをドラッグすると判断すると、最初のペインをターゲット ウィンドウの新しいタブとして追加しようとします。 それ以外の場合は、ターゲット ウィンドウの適切な側に最初のペインをドッキングしようとします。 フレームワークは、追加のドッキング ペインに対応するスライダーを備えた新しいコンテナーを作成します。

既定の GetTabArea 実装では、Outlook バーが静的な場合、つまり Outlook バーが浮動できない場合は、Outlook バーのクライアント領域全体が返されます。 それ以外の場合は、ページ ボタンが Outlook バー コントロールの上部と下部にある領域を返します。

この動作を変更するには、派生クラス CMFCOutlookBar でこのメソッドをオーバーライドします。

CMFCOutlookBar::IsMode2003

Outlook バーの動作が Microsoft Office Outlook 2003 の動作を模倣するかどうかを指定します。

BOOL IsMode2003() const;

戻り値

Outlook バーが Microsoft Office 2003 モードで実行されている場合は 0 以外。それ以外の場合は 0。

解説

このモードを有効にするには、CMFCOutlookBar::SetMode2003 を使用します。

CMFCOutlookBar::OnAfterAnimation

アニメーションを使用してアクティブなタブが設定された後、CMFCOutlookBarTabCtrl::SetActiveTab によって呼び出されます。

virtual void OnAfterAnimation(int nPage);

パラメーター

nPage
[in]アクティブになっているタブ ページの 0 から始まるインデックス。

解説

アクティブなタブを設定した場合の視覚効果は、アニメーションを有効にしているかどうかによって異なります。 詳細については、「 CMFCOutlookBarTabCtrl::EnableAnimation」を参照してください。

CMFCOutlookBar::OnBeforeAnimation

アニメーションを使用してタブ ページがアクティブ タブとして設定される前に、CMFCOutlookBarTabCtrl::SetActiveTab によって呼び出されます。

virtual BOOL OnBeforeAnimation(int nPage);

パラメーター

nPage
[in]アクティブに設定しようとしているタブ ページの 0 から始まるインデックス。

戻り値

新しいアクティブなタブの設定でアニメーションを使用する場合は TRUE、無効にする場合は FAL Standard Edition を返します。

解説

CMFCOutlookBar::OnScroll

Outlook バーが上下にスクロールしている場合に、フレームワークによって呼び出されます。

virtual void OnScroll(BOOL bDown);

パラメーター

bDown
[in]Outlook バーが下にスクロールしている場合は TRUE、上にスクロールしている場合は FAL Standard Edition。

解説

CMFCOutlookBar::RemoveCustomPage

カスタムの Outlook バー タブ ページを削除します。

BOOL RemoveCustomPage(
    UINT uiPage,
    CMFCOutlookBarTabCtrl* pTargetWnd);

パラメーター

uiPage
[in]親 Outlook ウィンドウのページの 0 から始まるインデックス。

pTargetWnd
[in]親 Outlook ウィンドウへのポインター。

戻り値

カスタム ページが正常に削除された場合は 0 以外。それ以外の場合は 0。

解説

カスタム ページを削除するには、この関数を呼び出します。 ページが削除されると、そのコントロール ID が使用可能な ID のプールに返されます。

削除するページが現在存在する CMFCOutlookBarTabCtrl クラス オブジェクトへのポインターを指定する必要があります。 ユーザーは別の Outlook バー間でデタッチ可能なページを移動できますが、カスタム ページに関する情報は、CMFCOutlookBar::CreateCustomPage という名前の Outlook バー オブジェクトに存在します。

CBaseTabbedPane::GetUnderlyingWindow を使用して、Outlook ウィンドウへのポインターを取得します。

CMFCOutlookBar::SetButtonsFont

Outlook バーのボタンのテキストのフォントを設定します。

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

パラメーター

pFont
[in]新しいフォントを指定します。

bRedraw
[in]TRUE の場合、Outlook バーが再描画されます。

解説

Outlook のタブ ページ ボタンに表示されるテキストのフォントを設定するには、このメソッドを使用します。

CMFCOutlookBar::SetMode2003

Outlook バーの動作が Outlook 2003 の動作と同じかどうかを指定します。

void SetMode2003(BOOL bMode2003=TRUE);

パラメーター

bMode2003
[in]TRUE の場合、Office 2003 モードが有効になります。

解説

Office 2003 モードを有効または無効にするには、この関数を使用します。 このモードでは、Outlook バーに追加のツール バーとカスタマイズ ボタンがあります。 Outlook バーの動作は、Microsoft Office 2003 の Outlook バーの動作に準拠しています。

既定では、このモードは無効になっています。

Note

この関数は、CMFCOutlookBar::Create の前に呼び出す必要があります。

関連項目

階層図
クラス
CBaseTabbedPane クラス
CMFCOutlookBarTabCtrl クラス
CMFCOutlookBarPane クラス