CMFCToolBarMenuButton クラス
ポップアップ メニューを含むツール バー ボタンです。 詳細については、Visual Studio インストールの VC\atlmfc\src\mfc フォルダーにあるソース コードを参照してください。
構文
class CMFCToolBarMenuButton : public CMFCToolBarButton
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
CMFCToolBarMenuButton::CMFCToolBarMenuButton | CMFCToolBarMenuButton オブジェクトを構築します。 |
パブリック メソッド
保護メソッド
名前 | 説明 |
---|---|
CMFCToolBarMenuButton::D rawDocumentIcon | メニュー ボタンにアイコンを描画します。 |
データ メンバー
名前 | 説明 |
---|---|
CMFCToolBarMenuButton::m_bAlwaysCallOwnerDraw | TRUE の場合、ボタンが描画されるときにフレームワークは常に CFrameWndEx::OnDrawMenuImage を呼び出します。 |
解説
A は CMFCToolBarMenuButton
、メニュー、サブメニューを含むメニュー項目、コマンドを実行またはメニューを表示するボタン、またはメニューのみを表示するボタンとして表示できます。 コンストラクターのボタンに関連付けられているイメージ、テキスト、メニュー ハンドル、コマンド ID などのパラメーターを指定して、メニュー ボタンの動作と外観を決定します CMFCToolbarMenuButton::CMFCToolbarMenuButton
。
クラスからCMFCToolbarMenuButton
派生したカスタム クラスは、DECLARE_Standard Edition RIAL マクロを使用する必要があります。 DECLARE_DYNCREATE マクロは、アプリケーションが閉じるとエラーを生成します。
例
次の例では、オブジェクトを構成する方法を CMFCToolBarMenuButton
示します。 このコードは、ドロップダウン メニューがパレット モードであることを指定し、ユーザーがメニュー バーからメニュー ボタンをドラッグしたときに作成されるティアオフ バーの ID を指定する方法を示しています。 このコード スニペットは、 Word パッド サンプルの一部です。
pBorderType->SetMenuPaletteMode(TRUE, 2 /* Rows number */);
pBorderType->SetTearOff(ID_BORDER_TEAROFF);
継承階層
必要条件
ヘッダー: afxtoolbarmenubutton.h
CMFCToolBarMenuButton::CMFCToolBarMenuButton
CMFCToolBarMenuButton
オブジェクトを構築します。
CMFCToolBarMenuButton();
CMFCToolBarMenuButton(const CMFCToolBarMenuButton& src);
CMFCToolBarMenuButton(
UINT uiID,
HMENU hMenu,
int iImage,
LPCTSTR lpszText=NULL,
BOOL bUserButton=FALSE);
パラメーター
src
[in]このCMFCToolBarMenuButton
オブジェクトにコピーする既存CMFCToolBarMenuButton
のオブジェクト。
uiID
[in]ユーザーがボタンをクリックしたときに実行するコマンドの ID。コマンドを直接実行しないメニュー ボタンの場合は (UINT)-1。
hMenu
[in]メニューへのハンドル。ボタンにメニューがない場合は NULL。
iImage
[in]ボタンの画像のインデックス。このボタンにアイコンがない場合、または uiID で指定されたコマンドのアイコンを使用する場合は -1。 インデックスは、アプリケーション内の各 CMFCToolBarImages
オブジェクトで同じです。
lpszText
[in]ツール バー メニュー ボタンのテキスト。
bUserButton
[in]ボタンにユーザー定義イメージが表示される場合は TRUE。FAL Standard Edition uiID で指定されたコマンドに関連付けられた定義済みのイメージがボタンに表示される場合。
解説
uiID が有効なコマンド ID の場合、ボタンはユーザーがクリックしたときにそのコマンドを実行します。 hMenu が有効なメニュー ハンドルの場合、ボタンがツールバーに表示されるときはドロップダウン メニュー、メニューに表示される場合はサブメニューが表示されます。 uiID と hMenu の両方が有効な場合、ボタンは分割ボタンで、ユーザーがコマンドをクリックしたときにコマンドを実行する部分と、ユーザーがクリックしたときにメニューをドロップダウンする下矢印付きの部分です。 ただし、hMenu が有効な場合、ユーザーはボタンがメニューに挿入されたときに、ボタンをクリックしてコマンドを実行することはできません。
例
次の例では、クラスのオブジェクトを構築する方法を CMFCToolBarMenuButton
示します。 このコード スニペットは、 Word パッド サンプルの一部です。
CMFCToolBarMenuButton *pBorderType = new CMFCToolBarMenuButton(ID_BORDER_1, pPopup->GetSafeHmenu(),
GetCmdMgr()->GetCmdImage(ID_BORDER_1, FALSE),
_T("Borders"));
CMFCToolBarMenuButton::CompareWith
virtual BOOL CompareWith(const CMFCToolBarButton& other) const;
パラメーター
[in] 他
戻り値
解説
CMFCToolBarMenuButton::CopyFrom
virtual void CopyFrom(const CMFCToolBarButton& src);
パラメーター
[in] Src
解説
CMFCToolBarMenuButton::CreateFromMenu
Windows メニュー ハンドルからツール バー メニューを初期化します。
virtual void CreateFromMenu(HMENU hMenu);
パラメーター
hMenu
[in]メニューへのハンドル。
解説
ツールバー メニュー ボタンには、ドロップダウン サブメニューを表示できます。
フレームワークはこのメソッドを呼び出して、メニューからサブメニューのコマンドを初期化します。
CMFCToolBarMenuButton::CreateMenu
ツール バー メニューのコマンドで構成されるメニューを作成します。 メニューへのハンドルを返します。
virtual HMENU CreateMenu() const;
戻り値
成功した場合のメニューへのハンドル。 ツール バー メニュー ボタンに関連付けられているコマンドの一覧が空の場合は NULL。
解説
派生クラスでこのメソッドをオーバーライドして、メニューの生成方法をカスタマイズできます。
CMFCToolBarMenuButton::CreatePopupMenu
ツール バー メニューを CMFCPopupMenu
表示するオブジェクトを作成します。
virtual CMFCPopupMenu* CreatePopupMenu();
戻り値
ツール バー メニュー ボタンに関連付けられているドロップダウン メニューを表示するオブジェクトへの CMFCPopupMenu
ポインター。
解説
このメソッドは、ボタンに関連付けられているドロップダウン メニューの表示を準備するためにフレームワークによって呼び出されます。
既定の実装では、新しい CMFCPopupMenu
オブジェクトを構築して返すだけです。 CMFCPopupMenu クラスの派生型を使用する場合、または追加の初期化を実行する場合は、このメソッドをオーバーライドします。
CMFCToolBarMenuButton::D rawDocumentIcon
メニュー ボタンにドキュメント アイコンを描画します。
void DrawDocumentIcon(
CDC* pDC,
const CRect& rectImage,
HICON hIcon);
パラメーター
pDC
[in]デバイス コンテキストへのポインター。
rectImage
[in]画像の外接する四角形の座標。
hIcon
[in]アイコンのハンドル。
解説
このメソッドは、ドキュメント アイコンを取得し、rectImage で 指定された領域の中央にあるメニュー ボタンに描画します。
CMFCToolBarMenuButton::EnableQuickCustomize
void EnableQuickCustomize();
解説
CMFCToolBarMenuButton::HasButton
virtual BOOL HasButton() const;
戻り値
解説
CMFCToolBarMenuButton::HaveHotBorder
virtual BOOL HaveHotBorder() const;
戻り値
解説
CMFCToolBarMenuButton::IsBorder
virtual BOOL IsBorder() const;
戻り値
解説
CMFCToolBarMenuButton::IsClickedOnMenu
BOOL IsClickedOnMenu() const;
戻り値
解説
CMFCToolBarMenuButton::IsQuickMode
BOOL IsQuickMode();
戻り値
解説
CMFCToolBarMenuButton::GetCommands
ツール バー メニューのコマンドの一覧への読み取り専用アクセスを提供します。
const CObList& GetCommands() const;
戻り値
CMFCToolBarButton クラス オブジェクトのコレクションを含む CObList クラス オブジェクトへの const 参照。
解説
ツールバー メニュー ボタンにはサブメニューを表示できます。 コマンドの一覧は、コンストラクターのサブメニューまたは CMFCToolBarMenuButton::CreateFromMenu でメニュー (HMENU) のハンドルとして指定できます。 メニューは、CMFCToolBarButton クラスから派生し、内部CObList
オブジェクトに格納されているオブジェクトの一覧に変換されます。 この一覧には、このメソッドを呼び出してアクセスできます。
CMFCToolBarMenuButton::GetImageRect
ボタンイメージの外接する四角形を取得します。
void GetImageRect(CRect& rectImage);
パラメーター
rectImage
[out]画像の外接する四角形の座標を受け取るオブジェクトへの参照 CRect
。
CMFCToolBarMenuButton::GetPaletteRows
メニューがパレット モードのときのドロップダウン メニューの行数を返します。
int GetPaletteRows() const;
戻り値
パレット内の行数。
解説
メニュー ボタンがパレット モードに設定されている場合、メニュー項目は複数の列に表示され、行数は制限されます。 行数を取得するには、このメソッドを呼び出します。 パレット モードを有効または無効にし、CMFCToolBarMenuButton::SetMenuPaletteMode を使用して行数を指定できます。
CMFCToolBarMenuButton::GetPopupMenu
ボタンのドロップダウン メニューを 表す CMFCPopupMenu クラス オブジェクトへのポインターを返します。
CMFCPopupMenu* GetPopupMenu() const;
戻り値
フレームワークがツール バー メニュー ボタンのサブメニューを描画したときに作成された CMFCPopupMenu クラス オブジェクトへのポインター。サブメニューが表示されない場合は NULL。
解説
ツール バー メニュー ボタンにドロップダウン メニューが表示されると、メニューを表す CMFCPopupMenu クラス オブジェクトが作成されます。 オブジェクトへのポインターを取得するには、このメソッドを CMFCPopupMenu
呼び出します。 返されたポインターは一時的なもので、ユーザーがドロップダウン メニューを閉じると無効になるため、保存しないでください。
CMFCToolBarMenuButton::IsDroppedDown
ポップアップ メニューが現在表示されているかどうかを示します。
virtual BOOL IsDroppedDown() const;
戻り値
TRUE の場合、ツール バー メニュー ボタンのサブメニューが表示されます。それ以外の場合は FAL Standard Edition。
CMFCToolBarMenuButton::IsEmptyMenuAllowed
メニュー項目に空のサブメニューを表示するかどうかを指定します。
virtual BOOL IsEmptyMenuAllowed() const;
戻り値
フレームワークがサブメニューが空の場合でも、現在選択されているメニュー項目からサブメニューを開く場合は TRUE。それ以外の場合は FAL Standard Edition。
解説
フレームワークは、ユーザーが現在選択されているメニュー項目からサブメニューを開こうとすると、このメソッドを呼び出します。 サブメニューが空で IsEmptyMenuAllowed
FAL Standard Edition を返した場合、サブメニューは開かなくなります。
既定の実装では FALSE が返されます。 この動作をカスタマイズするには、このメソッドをオーバーライドします。
CMFCToolBarMenuButton::IsExclusive
ボタンが排他モードかどうかを示します。
virtual BOOL IsExclusive() const;
戻り値
ボタンが排他モードで動作している場合は TRUE。それ以外の場合は FAL Standard Edition。
解説
ユーザーがボタンのポップアップ メニューを開き、別のツール バーまたはメニュー ボタンの上にマウス ポインターを移動すると、ボタンが排他モードでない限り、ポップアップ メニューが閉じます。
既定の実装では常に FAL Standard Edition が返されます。 排他モードを有効にする場合は、派生クラスでこのメソッドをオーバーライドします。
CMFCToolBarMenuButton::IsMenuPaletteMode
ドロップダウン メニューがパレット モードかどうかを指定します。
BOOL IsMenuPaletteMode() const;
戻り値
パレット モードが有効な場合は TRUE、それ以外の場合は FAL Standard Edition。
解説
メニュー ボタンをパレット モードに設定すると、複数の列にメニュー項目が表示され、行数が制限されます。 行数を取得するには、このメソッドを呼び出します。 CMFCToolBarMenuButton::SetMenuPaletteMode を呼び出すことによって、パレット モードを有効または無効にすることができます。
CMFCToolBarMenuButton::IsTearOffMenu
ドロップダウン メニューにティアオフ バーがあるかどうかを示します。
virtual BOOL IsTearOffMenu() const;
戻り値
ツール バーのメニュー ボタンに引き裂きバーがある場合は TRUE。それ以外の場合は FAL Standard Edition。
解説
ティアオフ機能を有効にし、ティアオフ バー ID を設定するには、CMFCToolBarMenuButton::SetTearOff を呼び出 します。
CMFCToolBarMenuButton::m_bAlwaysCallOwnerDraw
ボタンの描画時にフレームワークが常に CFrameWndEx::OnDrawMenuImage を呼び出すかどうかを指定します。
static BOOL m_bAlwaysCallOwnerDraw;
解説
このメンバー変数が TRUE に設定されている場合、ボタンは常に CFrameWndEx::OnDrawMenuImage メソッドを呼び出してボタンに画像を表示します。 FAL Standard Edition の場合m_bAlwaysCallOwnerDraw
、イメージが事前に定義されている場合、ボタン自体はイメージを描画します。 そうでない場合は、OnDrawMenuImage
を呼び出します。
CMFCToolBarMenuButton::OnAfterCreatePopupMenu
virtual void OnAfterCreatePopupMenu();
解説
CMFCToolBarMenuButton::OnBeforeDrag
virtual BOOL OnBeforeDrag() const;
戻り値
解説
CMFCToolBarMenuButton::OnCalculateSize
virtual SIZE OnCalculateSize(
CDC* pDC,
const CSize& sizeDefault,
BOOL bHorz);
パラメーター
[in] Pdc
[in] sizeDefault
[in] bHorz
戻り値
解説
CMFCToolBarMenuButton::OnCancelMode
virtual void OnCancelMode();
解説
CMFCToolBarMenuButton::OnChangeParentWnd
virtual void OnChangeParentWnd(CWnd* pWndParent);
パラメーター
[in] pWndParent
解説
CMFCToolBarMenuButton::OnClick
virtual BOOL OnClick(
CWnd* pWnd,
BOOL bDelay = TRUE);
パラメーター
[入力] pWnd
[入力] bDelay
戻り値
解説
CMFCToolBarMenuButton::OnClickMenuItem
ユーザーがドロップダウン メニューで項目を選択すると、フレームワークによって呼び出されます。
virtual BOOL OnClickMenuItem();
戻り値
FAL Standard Editionフレームワークが既定のメニュー項目の処理を続行する必要がある場合は TRUE。それ以外の場合は TRUE。 既定の実装では常に FAL Standard Edition が返されます。
解説
ユーザーがメニュー項目をクリックすると、フレームワークはその項目に関連付けられているコマンドを実行します。
メニュー項目の処理をカスタマイズするには、クラスからCMFCToolBarMenuButton
派生したクラスでオーバーライドOnClickMenuItem
します。 また、CFrameWndEx::OnShowPopupMenu をオーバーライドし、特別な処理を必要とするメニュー ボタンを派生クラスのインスタンスに置き換える必要があります。
CMFCToolBarMenuButton::OnContextHelp
virtual BOOL OnContextHelp(CWnd* pWnd);
パラメーター
[入力] pWnd
戻り値
解説
CMFCToolBarMenuButton::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);
パラメーター
[in] Pdc
[in] Rect
[in] pImages
[in] bHorz
[in] bCustomizeMode
[in] bHighlight
[in] bDrawBorder
[in] bGrayDisabledButtons
解説
CMFCToolBarMenuButton::OnDrawOnCustomizeList
virtual int OnDrawOnCustomizeList(
CDC* pDC,
const CRect& rect,
BOOL bSelected);
パラメーター
[in] Pdc
[in] Rect
[in] bSelected
戻り値
解説
CMFCToolBarMenuButton::OpenPopupMenu
ユーザーがツール バー メニュー ボタンのドロップダウン メニューを開いたときにフレームワークによって呼び出されます。
virtual BOOL OpenPopupMenu(CWnd* pWnd=NULL);
パラメーター
pWnd
[in]ドロップダウン メニュー コマンドを受け取るウィンドウを指定します。 ツールバー メニュー ボタンに親ウィンドウがある場合にのみ NULL を指定できます。
戻り値
CMFCPopupMenu クラス オブジェクトが作成され、正常に開かれた場合は TRUE。それ以外の場合は FAL Standard Edition。
解説
この関数は、ユーザーがツール バー メニュー ボタンからドロップダウン メニューを開いたときにフレームワークによって呼び出されます。
CMFCToolBarMenuButton::ResetImageToDefault
virtual void ResetImageToDefault();
解説
CMFCToolBarMenuButton::SaveBarState
virtual void SaveBarState();
解説
フレームワークは、ドラッグ アンド ドロップ操作の結果としてツール バー ボタンを作成するときに、このメソッドを呼び出します。 このメソッドは、最上位のポップアップ メニューの CMFCPopupMenu::SaveState メソッドを呼び出します。これにより、ポップアップ メニューの親ボタンがそのメニューを再作成します。
CMFCToolBarMenuButton::Serialize
virtual void Serialize(CArchive& ar);
パラメーター
[in] Ar
解説
CMFCToolBarMenuButton::SetACCData
リボン要素のアクセシビリティ データを設定します。
virtual BOOL SetACCData(
CWnd* pParent,
CAccessibilityData& data);
パラメーター
pParent
リボン要素の親ウィンドウ。
data
リボン要素のアクセシビリティ データ。
戻り値
常に TRUE が返されます。
解説
既定では、このメソッドはリボン要素のアクセシビリティ データを設定し、常に TRUE を返します。 アクセシビリティ データを設定し、成功または失敗を示す値を返すようにするには、このメソッドをオーバーライドします。
CMFCToolBarMenuButton::SetMenuOnly
有効なコマンド ID とサブメニューの両方がある場合に、ボタンをメニュー ボタンまたは分割ボタンとして描画するかどうかを指定します。
void SetMenuOnly(BOOL bMenuOnly);
パラメーター
bMenuOnly
[in]有効なコマンド ID とサブメニューの両方がある場合にこのボタンをメニュー ボタンとして表示する場合は TRUE、FAL Standard Edition有効なコマンド ID とサブメニューの両方がある場合に分割ボタンとしてこのボタンを表示します。
解説
通常、ツール バー メニュー ボタンにサブメニューとコマンド ID の両方がある場合、メニューは、メイン ボタンと下矢印ボタンが付いた分割ボタンのように見えます。 このメソッドを呼び出し、 bMenuOnly が TRUE の場合、ボタンはボタンに下矢印が付いた単一のメニュー ボタンのように見えます。 ユーザーがいずれかのモードで矢印をクリックするとサブメニューが開き、いずれかのモードでボタンの非矢印部分をクリックすると、フレームワークによってコマンドが実行されます。
CMFCToolBarMenuButton::SetMenuPaletteMode
ドロップダウン メニューがパレット モードかどうかを指定します。
void SetMenuPaletteMode(
BOOL bMenuPaletteMode=TRUE,
int nPaletteRows=1);
パラメーター
bMenuPaletteMode
[in]ドロップダウン メニューがパレット モードかどうかを指定します。
nPaletteRows
[in]パレット内の行数。
解説
パレット モードでは、すべてのメニュー項目が複数列のパレットとして表示されます。 nPaletteRows を使用して行数を 指定します。
CMFCToolBarMenuButton::SetMessageWnd
void SetMessageWnd(CWnd* pWndMessage);
パラメーター
[in] pWndMessage
解説
CMFCToolBarMenuButton::SetRadio
ツールバー メニュー ボタンがチェックされたときにラジオ ボタン スタイル アイコンを表示するように設定します。
virtual void SetRadio();
解説
メニュー ボタンがチェックされている間に描画されると、CMFCVisualManager::OnDrawMenuCheck を呼び出して、チェックマーク アイコンを描画します。 既定では、OnDrawMenuCheck
現在のビジュアル マネージャーがメニュー ボタンにチェックボックス スタイルチェックマークを描画することを要求します。 このメソッドを呼び出した後、現在のビジュアル マネージャーは代わりに、メニュー ボタンにラジオ ボタン スタイルチェックマークを描画します。 この変更を元に戻すことはできません。
このメソッドを呼び出し、メニュー ボタンが現在表示されている場合は、更新されます。
CMFCToolBarMenuButton::SetTearOff
ドロップダウン メニューのティアオフ バーの ID を指定します。
virtual void SetTearOff(UINT uiBarID);
パラメーター
uiBarID
[in]新しいティアオフ バー ID を指定します。
解説
ユーザーがメニュー バーからメニュー ボタンをドラッグしたときに作成されるティアオフ バーの ID を指定するには、このメソッドを呼び出します。 uiBarID パラメーターが 0 の場合、ユーザーはメニュー ボタンを破棄できません。
CWinAppEx::EnableTearOffMenus を呼び出して、アプリケーションでティアオフ メニュー機能を有効にします。
関連項目
階層図
クラス
CMFCToolBarButton クラス
CMFCToolBar クラス
CMFCPopupMenu クラス
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示