次の方法で共有


CMFCOutlookBar クラス

Microsoft Outlook 2000 または Outlook 2003 の ナビゲーション ウィンドウ と同じ外観を持つタブ付きペインです。 CMFCOutlookBar オブジェクトには、CMFCOutlookBarTabCtrl クラスオブジェクトと一連のタブが含まれています。 タブには、 CMFCOutlookBarPane クラス オブジェクトまたは CWnd派生オブジェクトのいずれかを指定できます。 ユーザーに対しては、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 パラメーターを FALSE に設定します。 または、 CMFCOutlookBarTabCtrl::AddControl を使用してデタッチ可能なページを追加します。

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

Note

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

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

Outlook 2003 モード

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

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

継承階層

CObject

CCmdTarget

CWnd

CBasePane

CPane

CDockablePane

CBaseTabbedPane

CMFCOutlookBar

要件

Header: afxoutlookbar.h

CMFCOutlookBar::AllowDestroyEmptyTabbedPane

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

virtual BOOL AllowDestroyEmptyTabbedPane() const;

戻り値

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

解説

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

CMFCOutlookBar::CanAcceptPane

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

virtual BOOL CanAcceptPane(const CBasePane* pBar) const;

パラメーター

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

戻り値

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

解説

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

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

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

CMFCOutlookBar::CanSetCaptionTextToTabName

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

virtual BOOL CanSetCaptionTextToTabName() const;

戻り値

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

解説

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]目的のコントロール バーのスタイルを指定します。 使用可能な値については、「 Window スタイル」を参照してください。

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

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

戻り値

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

解説

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

dwControlBarStyle で指定する使用可能なライブラリ定義スタイルの一覧については、「CBasePane::CreateEx」を参照

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

カスタム 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 メソッドを呼び出します。 関数が FALSE を返す場合、フレームワークでは、ウィンドウの外側の端にある動的ペインのドッキングは許可されません。

通常は、静的な非フローティング コントロールとして 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。それ以外の場合は FALSE。 このメソッドの基本クラス バージョンとは異なり、このパラメーターには既定値はありません。

戻り値

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

解説

このメソッドは 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 を返し、アニメーションを無効にする場合は FALSE を返します。

解説

CMFCOutlookBar::OnScroll

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

virtual void OnScroll(BOOL bDown);

パラメーター

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

解説

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 クラス