Share via


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クラスは、CButton クラスから派生した CMFCButton クラスから派生します。 したがって、使用するのと同じ方法でコード内で使用CButtonできますCMFCMenuButton

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

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

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

必要条件

ヘッダー: afxmenubutton.h

CMFCMenuButton::CMFCMenuButton

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

CMFCMenuButton();

CMFCMenuButton::m_bOSMenu

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

BOOL m_bOSMenu;

解説

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

CMFCMenuButton::m_bRightArrow

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

BOOL m_bRightArrow;

解説

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

CMFCMenuButton::m_bStayPressed

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

BOOL m_bStayPressed;

解説

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

メンバーが 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 クラス