Share via


CMFCDropDownToolbarButton クラス

ツール バー ボタンの一種で、クリックされたときは標準ボタンと同じように動作します。 ただし、ユーザーがツール バー ボタンを押したままにすると、ドロップダウン ツール バー ( CMFCDropDownToolBar クラス ) が開きます。

構文

class CMFCDropDownToolbarButton : public CMFCToolBarButton

メンバー

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

名前 説明
CMFCDropDownToolbarButton::CMFCDropDownToolbarButton CMFCDropDownToolbarButton オブジェクトを構築します。
CMFCDropDownToolbarButton::~CMFCDropDownToolbarButton デストラクターです。

パブリック メソッド

名前 説明
CMFCDropDownToolbarButton::CopyFrom 別のツール バー ボタンのプロパティを現在のボタンにコピーします。 (オーバーライド CMFCToolBarButton::CopyFrom.)
CMFCDropDownToolbarButton::CreateObject このクラス型の動的インスタンスを作成するために、フレームワークで使用されます。
CMFCDropDownToolbarButton::D ropDownToolbar ドロップダウン ツール バーを開きます。
CMFCDropDownToolbarButton::ExportToMenuButton ツール バー ボタンからメニューにテキストをコピーします。 (オーバーライド CMFCToolBarButton::ExportToMenuButton.)
CMFCDropDownToolbarButton::GetDropDownToolBar ボタンに関連付けられているドロップダウン ツール バーを取得します。
CMFCDropDownToolbarButton::GetThisClass このクラス型に関連付けられている CRuntimeClass オブジェクトへのポインターを取得するためにフレームワークによって使用されます。
CMFCDropDownToolbarButton::IsDropDown ドロップダウン ツール バーが現在開いているかどうかを判断します。
CMFCDropDownToolbarButton::IsExtraSize ボタンを拡張罫線で表示できるかどうかを指定します。 (オーバーライド CMFCToolBarButton::IsExtraSize.)
CMFCDropDownToolbarButton::OnCalculateSize 指定したデバイス コンテキストとドッキング状態のボタンのサイズを計算するためにフレームワークによって呼び出されます。 (オーバーライド CMFCToolBarButton::OnCalculateSize.)
CMFCDropDownToolbarButton::OnCancelMode WM_CANCELMODE メッセージを処理するためにフレームワークによって呼び出されます。 ( CMCToolBarButton::OnCancelModeをオーバーライドします)。
CMFCDropDownToolbarButton::OnChangeParentWnd ボタンが新しいツール バーに挿入されたときにフレームワークによって呼び出されます。 (オーバーライド CMFCToolBarButton::OnChangeParentWnd.)
CMFCDropDownToolbarButton::OnClick ユーザーがマウス ボタンをクリックしたときにフレームワークによって呼び出されます。 (オーバーライド CMFCToolBarButton::OnClick.)
CMFCDropDownToolbarButton::OnClickUp ユーザーがマウス ボタンを離したときにフレームワークによって呼び出されます。 (オーバーライド CMFCToolBarButton::OnClickUp.)
CMFCDropDownToolbarButton::OnContextHelp 親ツール バーがWM_HELPHITTEST メッセージを処理するときにフレームワークによって呼び出されます。 (オーバーライド CMFCToolBarButton::OnContextHelp.)
CMFCDropDownToolbarButton::OnCustomizeMenu アプリケーションが親ツール バーにショートカット メニューを表示するときに、指定されたメニューを変更します。 (オーバーライド CMFCToolBarButton::OnCustomizeMenu.)
CMFCDropDownToolbarButton::OnDraw 指定したスタイルとオプションを使用してボタンを描画するために、フレームワークによって呼び出されます。 (オーバーライド CMFCToolBarButton::OnDraw.)
CMFCDropDownToolbarButton::OnDrawOnCustomizeList [カスタマイズ] ダイアログ ボックスの [コマンド] ウィンドウでボタンを描画するために、フレームワークによって呼び出されます。 (オーバーライド CMFCToolBarButton::OnDrawOnCustomizeList.)
CMFCDropDownToolbarButton::Serialize このオブジェクトをアーカイブから読み取るか、アーカイブに書き込みます。 (オーバーライド CMFCToolBarButton::Serialize.)
CMFCDropDownToolbarButton::SetDefaultCommand ユーザーがボタンをクリックしたときにフレームワークが使用する既定のコマンドを設定します。

データ メンバー

名前 説明
CMFCDropDownToolbarButton::m_uiShowBarDelay ドロップダウン ツール バーが表示されるまでにユーザーがマウス ボタンを押したままにする必要がある時間の長さを指定します。

解説

A は CMFCDropDownToolBarButton 、ボタンの右下隅に小さな矢印がある点で、通常のボタンとは異なります。 ユーザーがドロップダウン ツール バーからボタンを選択すると、フレームワークのアイコンが最上位のツール バー ボタン (右下隅に小さな矢印が付いたボタン) に表示されます。

ドロップダウン ツール バーを実装する方法については、「CMFCDropDownToolBar クラス」を参照してください

オブジェクトを CMFCDropDownToolBarButton CMFCToolBarMenuButton クラス オブジェクトにエクスポートし、ポップアップ メニューを含むメニュー ボタンとして表示できます。

継承階層

CObject

CMFCToolBarButton

CMFCDropDownToolbarButton

必要条件

ヘッダー: 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指定されたテキストが使用されます。 [カスタマイズ] ダイアログ ボックスの詳細については、「CMFCToolBarsCustomizeDialog クラス」を参照してください

次の例では、クラスのオブジェクトを構築する方法を CMFCDropDownToolbarButton 示します。 このコード スニペットは、Visual Studio デモ サンプルの一部です。

// Add dropdown resources button
// CMFCToolBarsCustomizeDialog* pDlgCust
// CMFCDropDownToolBar m_wndToolbarResource
pDlgCust->AddButton(_T("Build"), CMFCDropDownToolbarButton(_T("Add Resource"), &m_wndToolbarResource));

ドロップダウン ツール バーを開きます。

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_pToolBarNULL、または基本クラスの実装が FAL Standard Edition を返す場合に失敗します。

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、ツールバーが垂直方向にドッキングされている場合は FAL Standard Edition です。

戻り値

SIZEボタンの寸法をピクセル単位で格納する構造体。

解説

このメソッドは、ボタン サイズの水平寸法にドロップダウン矢印の幅を追加することで、基底クラスの実装 ( CMFCToolBarButton::OnCalculateSize) を拡張します。

CMFCDropDownToolbarButton::OnChangeParentWnd

ボタンが新しいツール バーに挿入されたときにフレームワークによって呼び出されます。

virtual void OnChangeParentWnd(CWnd* pWndParent);

パラメーター

pWndParent
[in]新しい親ウィンドウ。

解説

このメソッドは、テキスト ラベル (CMFCToolBarButton::m_strText) をクリアし、CMFCToolBarButton::m_bText および CMFCToolBarButton::m_bUserButton データ メンバーを FAL に設定することで、基本クラスの実装 (CMFCToolBarButton::OnChangeParentWnd) をオーバーライドStandard Edition。

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。

解説

このメソッドは、bDelay が FAL Standard Edition に設定された CMFCDropDownToolbarButton::OnClick メソッドを呼び出すことによって、基底クラスの実装 (CMFCToolBarButton::OnContextHelp) を拡張します。 このメソッドは、CMFCDropDownToolbarButton::OnClick によって 返される値を返します

WM_HELPHITTEST メッセージの詳細については、「TN028: 状況依存のヘルプ サポート」を参照してください

CMFCDropDownToolbarButton::OnCustomizeMenu

アプリケーションが親ツール バーにショートカット メニューを表示するときに、指定されたメニューを変更します。

virtual BOOL OnCustomizeMenu(CMenu* pMenu);

パラメーター

pMenu
[in]カスタマイズするメニュー。

戻り値

このメソッドは TRUE を返します。

解説

このメソッドは、次のメニュー項目を無効にすることで、基底クラスの実装 ( CMFCToolBarButton::OnCustomizeMenu) を拡張します。

  • コピー ボタンの画像

  • ボタンの外観

  • Image

  • テキスト

  • 画像とテキスト

フレームワークがカスタマイズ モードで表示するショートカット メニューを変更するには、このメソッドをオーバーライドします。

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、ボタンが垂直方向にドッキングされている場合Standard Edition FAL です。

bCustomizeMode
[in]ツール バーがカスタマイズ モードかどうかを指定します。 このパラメーターは、ツール バーがカスタマイズ モードの場合は TRUE、ツール バーがカスタマイズ モードでない場合は FAL Standard Edition です。

bHighlight
[in]ボタンを強調表示するかどうかを指定します。 このパラメーターは、ボタンが強調表示されている場合は TRUE、ボタンが強調表示されていない場合は FAL Standard Edition です。

bDrawBorder
[in]ボタンの境界線を表示するかどうかを指定します。 このパラメーターは、ボタンが境界線を表示する必要がある場合は TRUE、ボタンの境界線を表示しない場合Standard Edition FAL です。

bGrayDisabledButtons
[in]無効なボタンを網掛けするか、無効にしたイメージ コレクションを使用するかを指定します。 このパラメーターは、無効なボタンを網掛けし、FAL Standard Editionこのメソッドが無効なイメージ コレクションを使用する必要がある場合に TRUE です。

解説

ツール バー ボタンの描画をカスタマイズするには、このメソッドをオーバーライドします。

CMFCDropDownToolbarButton::OnDrawOnCustomizeList

[カスタマイズ] ダイアログ ボックスの [コマンド] ウィンドウでボタンを描画するために、フレームワークによって呼び出されます。

virtual int OnDrawOnCustomizeList(
    CDC* pDC,
    const CRect& rect,
    BOOL bSelected);

パラメーター

pDC
[in]ボタンを表示するデバイス コンテキスト。

rect
[in]ボタンの外接する四角形。

bSelected
[in]ボタンが選択されているかどうかを示します。 このパラメーターが TRUE の場合、ボタンが選択されます。 このパラメーターが FAL Standard Edition の場合、ボタンは選択されていません。

戻り値

指定したデバイス コンテキストのボタンの幅 (ピクセル単位)。

解説

このメソッドは、所有者描画リスト ボックスにボタンを表示する必要がある場合に、カスタマイズ ダイアログ ボックス ( [コマンド ] タブ) によって呼び出されます。

このメソッドは、ボタンのテキスト ラベルをボタンの名前 (つまり、コンストラクターに渡した 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 クラス
チュートリアル: ツール バーへのコントロールの追加