次の方法で共有


CMFCMenuButton クラス

ポップアップ メニューを表示してユーザーのメニュー選択を報告するボタンです。

構文

class CMFCMenuButton : public CMFCButton

メンバー

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

名前 説明
CMFCMenuButton::CMFCMenuButton CMFCMenuButton オブジェクトを構築します。

パブリック メソッド

名前 説明
CMFCMenuButton::P reTranslateMessage ウィンドウ メッセージがディスパッチされる前に変換するためにフレームワークによって呼び出されます。 ( CMFCButton::PreTranslateMessageをオーバーライドします)。
CMFCMenuButton::SizeToContent テキストと画像のサイズに応じてボタンのサイズを変更します。

データ メンバー

名前 説明
CMFCMenuButton::m_bOSMenu 既定のシステム ポップアップ メニューを表示するか、 CContextMenuManager::TrackPopupMenu を使用するかを指定します。
CMFCMenuButton::m_bRightArrow ボタンの下または右側にポップアップ メニューを表示するかどうかを指定します。
CMFCMenuButton::m_bStayPressed ユーザーがボタンを離した後にメニュー ボタンの状態を変更するかどうかを指定します。
CMFCMenuButton::m_hMenu 添付されている Windows メニューのハンドル。
CMFCMenuButton::m_nMenuResult ユーザーがポップアップ メニューから選択した項目を示す識別子。
CMFCMenuButton::m_bDefaultClick 既定の (ボタン テキスト/画像の) 処理を許可します。

解説

CMFCMenuButton クラスは、CMFCButton クラスから派生CButton クラスから派生します。 そのため、CButtonと同じ方法でコードでCMFCMenuButtonを使用できます。

CMFCMenuButtonを作成するときは、関連付けられているポップアップ メニューにハンドルを渡す必要があります。 次に、関数 CMFCMenuButton::SizeToContentを呼び出します。 CMFCMenuButton::SizeToContent は、ポップアップ ウィンドウが表示される場所 (つまり、ボタンの下または右側) を指す矢印を含めるのにボタン のサイズが十分であることを確認します。

次の例では、ボタンにアタッチされているメニューのハンドルを設定し、テキストと画像のサイズに応じてボタンのサイズを変更し、フレームワークによって表示されるポップアップ メニューを設定する方法を示します。 このコード スニペットは、 New コントロールのサンプルの一部です。

CMFCMenuButton m_btnMenu;
// CMenu m_menu
m_btnMenu.m_hMenu = m_menu.GetSubMenu(0)->GetSafeHmenu();
m_btnMenu.SizeToContent();
// set to FALSE so that the framework calls CContextMenuManager::TrackPopupMenu
// to display its menu
m_btnMenu.m_bOSMenu = FALSE;

継承階層

CObject

CCmdTarget

CWnd

CButton

CMFCButton

CMFCMenuButton

要件

Header: afxmenubutton.h

CMFCMenuButton::CMFCMenuButton

新しい CMFCMenuButton オブジェクトを構築します。

CMFCMenuButton();

CMFCMenuButton::m_bOSMenu

フレームワークが表示するポップアップ メニューを示すブール型メンバー変数。

BOOL m_bOSMenu;

解説

m_bOSMenuが TRUE の場合、フレームワークはこのオブジェクトの継承されたTrackPopupMenu メソッドを呼び出します。 それ以外の場合、フレームワークは CContextMenuManager::TrackPopupMenu を呼び出します。

CMFCMenuButton::m_bRightArrow

ポップアップ メニューの場所を示すブール型のメンバー変数。

BOOL m_bRightArrow;

解説

ユーザーがメニュー ボタンを押すと、アプリケーションにポップアップ メニューが表示されます。 フレームワークには、ボタンの下またはボタンの右側にポップアップ メニューが表示されます。 ボタンには、ポップアップ メニューが表示される場所を示す小さな矢印もあります。 m_bRightArrowが TRUE の場合、フレームワークはボタンの右側にポップアップ メニューを表示します。 それ以外の場合は、ボタンの下にポップアップ メニューが表示されます。

CMFCMenuButton::m_bStayPressed

ユーザーがポップアップ メニューから選択を行っている間にメニュー ボタンが押された状態で表示されるかどうかを示すブール型メンバー変数。

BOOL m_bStayPressed;

解説

m_bStayPressedメンバーが FALSE の場合、ボタンをクリックしてもメニュー ボタンは押されません。 この場合、フレームワークにはポップアップ メニューのみが表示されます。

m_bStayPressedメンバーが TRUE の場合、ユーザーがボタンをクリックするとメニュー ボタンが押されます。 ユーザーがポップアップ メニューを閉じるまで、選択または取り消しによって押された状態が維持されます。

CMFCMenuButton::m_hMenu

添付メニューのハンドル。

HMENU m_hMenu;

解説

フレームワークでは、ユーザーがメニュー ボタンをクリックすると、このメンバー変数によって示されるメニューが表示されます。

CMFCMenuButton::m_nMenuResult

ユーザーがポップアップ メニューから選択する項目を示す整数。

int m_nMenuResult;

解説

ユーザーが選択を行わずにメニューをキャンセルした場合、またはエラーが発生した場合、このメンバー変数の値は 0 です。

CMFCMenuButton::m_bDefaultClick

ボタン上のテキストまたは画像の既定の処理を許可します。

BOOL  m_bDefaultClick;

解説

m_bDefaultClickを false に設定すると、ボタン上の任意の場所をクリックすると、ボタンにメニューが表示されます。

CMFCMenuButton::P reTranslateMessage

ウィンドウ メッセージがディスパッチされる前に変換するためにフレームワークによって呼び出されます。

virtual BOOL PreTranslateMessage(MSG* pMsg);

パラメーター

pMsg
[in]処理するメッセージを含む MSG 構造体を指します。

戻り値

メッセージが翻訳され、ディスパッチすべきでない場合は 0 以外。メッセージが翻訳されておらず、ディスパッチする必要がある場合は 0。

解説

CMFCMenuButton::SizeToContent

テキストサイズと画像サイズに応じてボタンのサイズを変更します。

virtual CSize SizeToContent(BOOL bCalcOnly = FALSE);

パラメーター

bCalcOnly
[in]このメソッドがボタンのサイズを変更するかどうかを示すブール型パラメーターです。

戻り値

ボタンの新しいサイズを指定する CSize オブジェクト。

解説

この関数を呼び出し、 bCalcOnly が TRUE の場合、 SizeToContent はボタンの新しいサイズのみを計算します。

ボタンの新しいサイズは、ボタンのテキスト、画像、矢印に合わせて計算されます。 フレームワークでは、水平エッジには 10 ピクセル、垂直エッジには 5 ピクセルの定義済みの余白も追加されます。

関連項目

階層図
クラス
CMFCButton クラス