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
コントロールを使用するには、次の手順に従います。
CMFCOutlookBar
オブジェクトをメイン フレーム ウィンドウ クラスに埋め込みます。class CMainFrame : public CMDIFrameWnd { // ... CMFCOutlookBar m_wndOutlookBar; CMFCOutlookBarPane m_wndOutlookPane; // ... };
メイン フレームで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);
CBaseTabbedPane::GetUnderlyingWindow を使用して、基になる
CMFCOutlookBarTabCtrl
へのポインターを取得します。CMFCOutlookBarTabCtrl* pOutlookBar = (CMFCOutlookBarTabCtrl*) m_wndOutlookBar.GetUnderlyingWindow ();
ボタンを含むタブごとに、 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);
CMFCOutlookBarTabCtrl::AddTab を呼び出して新しいタブを追加します。ページをデタッチ不可にするには、bDetachable パラメーターを FALSE に設定します。 または、 CMFCOutlookBarTabCtrl::AddControl を使用してデタッチ可能なページを追加します。
pOutlookBar->AddTab (&m_wndOutlookPane, "General", (UINT) -1, TRUE);
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 バーの下部に表示されるアイコンを含むビットマップを設定します。 ビットマップ内のアイコンはタブ インデックス順に並べ替える必要があります。
継承階層
要件
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 クラス