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;
継承階層
必要条件
ヘッダー: 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 ピクセルの定義済みの余白も追加されます。
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示