CMFCDropDownToolbarButton クラス
ツール バー ボタンの一種で、クリックされたときは標準ボタンと同じように動作します。 ただし、ユーザーがツール バー ボタンを押したままにすると、ドロップダウン ツール バー ( CMFCDropDownToolBar クラス が開きます。
構文
class CMFCDropDownToolbarButton : public CMFCToolBarButton
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
CMFCDropDownToolbarButton::CMFCDropDownToolbarButton | CMFCDropDownToolbarButton オブジェクトを構築します。 |
CMFCDropDownToolbarButton::~CMFCDropDownToolbarButton |
デストラクターです。 |
パブリック メソッド
データ メンバー
名前 | 説明 |
---|---|
CMFCDropDownToolbarButton::m_uiShowBarDelay | ドロップダウン ツール バーが表示されるまでにユーザーがマウス ボタンを押したままにする必要がある時間の長さを指定します。 |
解説
CMFCDropDownToolBarButton
は、ボタンの右下隅に小さな矢印がある点で、通常のボタンとは異なります。 ユーザーがドロップダウン ツール バーからボタンを選択すると、フレームワークのアイコンが最上位のツール バー ボタン (右下隅に小さな矢印が付いたボタン) に表示されます。
ドロップダウン ツール バーを実装する方法については、「 CMFCDropDownToolBar クラスを参照してください。
CMFCDropDownToolBarButton
オブジェクトは、CMFCToolBarMenuButton クラス オブジェクトにエクスポートし、ポップアップ メニュー付きのメニュー ボタンとして表示できます。
継承階層
要件
ヘッダー: afxdropdowntoolbar.h
CMFCDropDownToolbarButton::CopyFrom
別のツール バー ボタンのプロパティを現在のボタンにコピーします。
virtual void CopyFrom(const CMFCToolBarButton& src);
パラメーター
src
[in]コピー元のソース ボタンへの参照。
解説
このツール バー ボタンに別のツール バー ボタンをコピーするには、このメソッドを呼び出します。 src は CMFCDropDownToolbarButton
型である必要があります。
CMFCDropDownToolbarButton::CMFCDropDownToolbarButton
CMFCDropDownToolbarButton
オブジェクトを構築します。
CMFCDropDownToolbarButton();
CMFCDropDownToolbarButton(
LPCTSTR lpszName,
CMFCDropDownToolBar* pToolBar);
パラメーター
lpszName
[in]ボタンの既定のテキスト。
pToolBar
[in]ユーザーがボタンを押したときに表示される CMFCDropDownToolBar
オブジェクトへのポインター。
解説
コンストラクターの 2 番目のオーバーロードは、 pToolBar が指定するツール バーの最初のボタンをドロップダウン ボタンにコピーします。
通常、ドロップダウン ツール バー ボタンは、 pToolBar が指定するツール バーの最も最近使用したボタンのテキストを使用します。 lpszNameボタンがメニュー ボタンに変換されたとき、または Customize ダイアログ ボックスの [Commands タブに表示されるときに使用されます。 Customize ダイアログ ボックスの詳細については、「CMFCToolBarsCustomizeDialog クラスを参照してください。
例
次の例では、 CMFCDropDownToolbarButton
クラスのオブジェクトを構築する方法を示します。 このコード スニペットは、Visual Studio デモ サンプルの一部です。
// Add dropdown resources button
// CMFCToolBarsCustomizeDialog* pDlgCust
// CMFCDropDownToolBar m_wndToolbarResource
pDlgCust->AddButton(_T("Build"), CMFCDropDownToolbarButton(_T("Add Resource"), &m_wndToolbarResource));
CMFCDropDownToolbarButton::D ropDownToolbar
ドロップダウン ツール バーを開きます。
BOOL DropDownToolbar(CWnd* pWnd);
パラメーター
pWnd
[in]ドロップダウン フレームの親ウィンドウ。ドロップダウン ツール バー ボタンの親ウィンドウを使用する場合は NULL。
戻り値
メソッドが成功した場合は 0 以外。それ以外の場合は 0。
解説
CMFCDropDownToolbarButton::OnClick メソッドは、このメソッドを呼び出して、ユーザーがツール バー ボタンを押したままにしたときにドロップダウン ツール バーを開きます。
このメソッドは、 CMFCDropDownFrame::Create メソッドを使用してドロップダウン ツール バーを作成します。 親ツールバーが垂直方向にドッキングされている場合、このメソッドは、フィットに応じて、ドロップダウン ツール バーを親ツールバーの左側または右側に配置します。 それ以外の場合、このメソッドは、ドロップダウン ツール バーを親ツール バーの下に配置します。
pWndが NULL で、ドロップダウン ツール バー ボタンに親ウィンドウがない場合、このメソッドは失敗します。
CMFCDropDownToolbarButton::ExportToMenuButton
ツール バー ボタンからメニューにテキストをコピーします。
virtual BOOL ExportToMenuButton(CMFCToolBarMenuButton& menuButton) const;
パラメーター
menuButton
[in]ターゲット メニュー ボタンへの参照。
戻り値
メソッドが成功した場合は 0 以外。それ以外の場合は 0。
解説
このメソッドは基底クラスの実装 ( CMFCToolBarButton::ExportToMenuButton) を呼び出し、このボタンの各ツール バー メニュー項目を含むポップアップ メニューをターゲット メニュー ボタンに追加します。 このメソッドは、サブメニューをポップアップ メニューに追加しません。
親ツール バー ( m_pToolBar
) が NULL の場合、または基底クラスの実装が FALSE を返す場合、このメソッドは失敗します。
CMFCDropDownToolbarButton::GetDropDownToolBar
ボタンに関連付けられているドロップダウン ツール バーを取得します。
CMFCToolBar* GetDropDownToolBar() const;
戻り値
ボタンに関連付けられているドロップダウン ツール バー。
解説
このメソッドは、 m_pToolBar
データ メンバーを返します。
CMFCDropDownToolbarButton::IsDropDown
ドロップダウン ツール バーが現在開いているかどうかを判断します。
BOOL IsDropDown() const;
戻り値
ドロップダウン ツール バーが現在開いている場合は 0 以外。それ以外の場合は 0。
解説
フレームワークは、 CMFCDropDownToolbarButton::D ropDownToolbar メソッドを使用してドロップダウン ツール バーを開きます。 ユーザーがドロップダウン ツール バーのクライアント以外の領域でマウスの左ボタンを押すと、フレームワークはドロップダウン ツール バーを閉じます。
CMFCDropDownToolbarButton::IsExtraSize
ボタンを拡張罫線で表示できるかどうかを指定します。
virtual BOOL IsExtraSize() const;
戻り値
ツール バー ボタンを拡張罫線で表示できる場合は 0 以外。それ以外の場合は 0。
解説
拡張罫線の詳細については、「 CMFCToolBarButton::IsExtraSizeを参照してください。
CMFCDropDownToolbarButton::m_uiShowBarDelay
ドロップダウン ツール バーが表示されるまでにユーザーがマウス ボタンを押したままにする必要がある時間の長さを指定します。
static UINT m_uiShowBarDelay;
解説
遅延時間はミリ秒単位で測定されます。 既定値は 500 です。 この共有データ メンバーの値を変更することで、別の遅延を設定できます。
CMFCDropDownToolbarButton::OnCalculateSize
指定したデバイス コンテキストとドッキング状態のボタンのサイズを計算するためにフレームワークによって呼び出されます。
virtual SIZE OnCalculateSize(
CDC* pDC,
const CSize& sizeDefault,
BOOL bHorz);
パラメーター
pDC
[in]ボタンを表示するデバイス コンテキスト。
sizeDefault
[in]ボタンの既定のサイズ。
bHorz
[in]親ツールバーのドッキング状態。 このパラメーターは、ツールバーが水平方向にドッキングされている場合、または浮動している場合は TRUE、ツール バーが垂直方向にドッキングされている場合は FALSE です。
戻り値
ボタンの寸法をピクセル単位で格納する SIZE
構造体。
解説
このメソッドは、ボタン サイズの水平寸法にドロップダウン矢印の幅を追加することで、基底クラスの実装 ( CMFCToolBarButton::OnCalculateSize) を拡張します。
CMFCDropDownToolbarButton::OnChangeParentWnd
ボタンが新しいツール バーに挿入されたときにフレームワークによって呼び出されます。
virtual void OnChangeParentWnd(CWnd* pWndParent);
パラメーター
pWndParent
[in]新しい親ウィンドウ。
解説
このメソッドは、テキスト ラベル (CMFCToolBarButton::m_strText) をクリアし、CMFCToolBarButton::m_bText と CMFCToolBarButton::m_bUserButton データ メンバーを FALSE に設定することで、基底クラスの実装 (CMFCToolBarButton::OnChangeParentWnd) をオーバーライドします。
CMFCDropDownToolbarButton::OnClick
ユーザーがマウス ボタンをクリックしたときにフレームワークによって呼び出されます。
virtual BOOL OnClick(
CWnd* pWnd,
BOOL bDelay = TRUE);
パラメーター
pWnd
[in]ツール バー ボタンの親ウィンドウ。
bDelay
[in]メッセージを遅延で処理する必要がある場合は TRUE。
戻り値
ボタンがクリック メッセージを処理する場合は 0 以外。それ以外の場合は 0。
解説
このメソッドは、ドロップダウン ツール バーの状態を更新することで、基底クラスの実装である CMFCToolBarButton::OnClick を拡張します。
ユーザーがツール バー ボタンをクリックすると、このメソッドは、 CMFCDropDownToolbarButton::m_uiShowBarDelay データ メンバーによって指定された時間の長さを待機するタイマーを作成し、 CMFCDropDownToolbarButton::D ropDownToolbar メソッドを使用してドロップダウン ツール バーを開きます。 このメソッドは、ユーザーがツール バー ボタンを 2 回目にクリックしたときに、ドロップダウン ツール バーを閉じます。
CMFCDropDownToolbarButton::OnClickUp
ユーザーがマウス ボタンを離したときにフレームワークによって呼び出されます。
virtual BOOL OnClickUp();
戻り値
ボタンがクリック メッセージを処理する場合は 0 以外。それ以外の場合は 0。
解説
このメソッドは、ドロップダウン ツール バーの状態を更新することで、基底クラスの実装である CMFCToolBarButton::OnClickUp を拡張します。
このメソッドは、ドロップダウン ツール バー タイマーがアクティブな場合に停止します。 開いている場合は、ドロップダウン ツール バーを閉じます。
ドロップダウン ツール バーとドロップダウン ツール バー タイマーの詳細については、「 CMFCDropDownToolbarButton::OnClickを参照してください。
CMFCDropDownToolbarButton::OnContextHelp
親ツール バーがWM_HELPHITTEST メッセージを処理するときにフレームワークによって呼び出されます。
virtual BOOL OnContextHelp(CWnd* pWnd);
パラメーター
pWnd
[in]ツール バー ボタンの親ウィンドウ。
戻り値
ボタンがヘルプ メッセージを処理する場合は 0 以外。それ以外の場合は 0。
解説
このメソッドは、CMFCDropDownToolbarButton::OnClick メソッドを FALSE に設定してCMFCDropDownToolbarButton::OnClick メソッドを呼び出すことによって、基底クラスの実装 ( CMFCToolBarButton::OnContextHelp を拡張します。 このメソッドは、 CMFCDropDownToolbarButton::OnClick によって返される値を返します。
WM_HELPHITTEST メッセージの詳細については、「 TN028: 状況依存のヘルプ サポート」を参照してください。
CMFCDropDownToolbarButton::OnCustomizeMenu
アプリケーションが親ツール バーにショートカット メニューを表示するときに、指定されたメニューを変更します。
virtual BOOL OnCustomizeMenu(CMenu* pMenu);
パラメーター
pMenu
[in]カスタマイズするメニュー。
戻り値
このメソッドは TRUE を返します。
解説
このメソッドは、次のメニュー項目を無効にすることで、基底クラスの実装 ( CMFCToolBarButton::OnCustomizeMenu) を拡張します。
コピー ボタンの画像
ボタンの外観
イメージ
テキスト
画像とテキスト
フレームワークがカスタマイズ モードで表示するショートカット メニューを変更するには、このメソッドをオーバーライドします。
CMFCDropDownToolbarButton::OnDraw
指定したスタイルとオプションを使用してボタンを描画するために、フレームワークによって呼び出されます。
virtual void OnDraw(
CDC* pDC,
const CRect& rect,
CMFCToolBarImages* pImages,
BOOL bHorz = TRUE,
BOOL bCustomizeMode = FALSE,
BOOL bHighlight = FALSE,
BOOL bDrawBorder = TRUE,
BOOL bGrayDisabledButtons = TRUE);
パラメーター
pDC
[in]ボタンを表示するデバイス コンテキスト。
rect
[in]ボタンの外接する四角形。
pImages
[in]ボタンに関連付けられているツール バー イメージのコレクション。
bHorz
[in]親ツールバーのドッキング状態。 このパラメーターは、ボタンが水平方向にドッキングされている場合は TRUE、ボタンが垂直方向にドッキングされている場合は FALSE です。
bCustomizeMode
[in]ツール バーがカスタマイズ モードかどうかを指定します。 このパラメーターは、ツール バーがカスタマイズ モードの場合は TRUE、ツール バーがカスタマイズ モードでない場合は FALSE です。
bHighlight
[in]ボタンを強調表示するかどうかを指定します。 このパラメーターは、ボタンが強調表示されている場合は TRUE、ボタンが強調表示されていない場合は FALSE です。
bDrawBorder
[in]ボタンの境界線を表示するかどうかを指定します。 このパラメーターは、ボタンの境界線を表示する場合は TRUE、ボタンの境界線を表示しない場合は FALSE です。
bGrayDisabledButtons
[in]無効なボタンを網掛けするか、無効にしたイメージ コレクションを使用するかを指定します。 このパラメーターは、無効なボタンを網掛けする必要がある場合は TRUE、無効なイメージ コレクションを使用するメソッドの場合は FALSE です。
解説
ツール バー ボタンの描画をカスタマイズするには、このメソッドをオーバーライドします。
CMFCDropDownToolbarButton::OnDrawOnCustomizeList
Customize ダイアログ ボックスの Commands ペインにボタンを描画するためにフレームワークによって呼び出されます。
virtual int OnDrawOnCustomizeList(
CDC* pDC,
const CRect& rect,
BOOL bSelected);
パラメーター
pDC
[in]ボタンを表示するデバイス コンテキスト。
rect
[in]ボタンの外接する四角形。
bSelected
[in]ボタンが選択されているかどうかを示します。 このパラメーターが TRUE の場合、ボタンが選択されます。 このパラメーターが FALSE の場合、ボタンは選択されていません。
戻り値
指定したデバイス コンテキストのボタンの幅 (ピクセル単位)。
解説
このメソッドは、ユーザー設定ダイアログ ボックス ( Commands タブ) で、ボタンが所有者描画リスト ボックスに表示される必要がある場合に呼び出されます。
このメソッドは、ボタンのテキスト ラベルをボタンの名前 (つまり、コンストラクターに渡した lpszName パラメーターの値) に変更することで、基本クラスの実装 (CMFCToolBarButton::OnDrawOnCustomizeList) を拡張します。
CMFCDropDownToolbarButton::Serialize
このオブジェクトをアーカイブから読み取るか、アーカイブに書き込みます。
virtual void Serialize(CArchive& ar);
パラメーター
ar
[in]シリアル化元またはシリアル化先の CArchive
オブジェクト。
解説
このメソッドは、親ツール バーのリソース ID をシリアル化することで、基底クラスの実装 ( CMFCToolBarButton::Serialize) を拡張します。 アーカイブを読み込むときに ( CArchive::IsLoading は 0 以外の値を返します)、このメソッドは、シリアル化されたリソース ID を含むツール バーに m_pToolBar
データ メンバーを設定します。
CMFCDropDownToolbarButton::SetDefaultCommand
ユーザーがボタンをクリックしたときにフレームワークが使用する既定のコマンドを設定します。
void SetDefaultCommand(UINT uiCmd);
パラメーター
uiCmd
[in]既定のコマンドの ID。
解説
このメソッドを呼び出して、ユーザーがボタンをクリックしたときにフレームワークが実行する既定のコマンドを指定します。 uiCmd で指定されたコマンド ID を持つ項目は、親ドロップダウン ツール バーに配置する必要があります。
関連項目
階層図
クラス
CMFCDropDownToolBar クラス
CMFCToolBar クラス
CMFCToolBarMenuButton クラス
チュートリアル: ツール バーへのコントロールの追加