次の方法で共有


CSplitButton::OnDropDown

ユーザーが現在の分割ボタン コントロールのドロップダウン矢印をクリックしたときにシステムから送信される BCN_DROPDOWN 通知を処理します。

afx_msg void OnDropDown(
    NMHDR* pNMHDR, 
    LRESULT* pResult
);

パラメーター

パラメーター

説明

[入力] pNMHDR

BCN_DROPDOWN 通知に関する情報が含まれている NMHDR 構造体へのポインター。

[出力] pResult

(使用しません。値は返されません。)BCN_DROPDOWN 通知の戻り値。

必要条件

**ヘッダー:**afxcmn.h

このメソッドは、Windows Vista およびそれ以降のバージョンでサポートされています。

このメソッドに関するその他の要件については、「Windows Vista コモン コントロールの作成要件」を参照してください。

解説

ユーザーが分割ボタン コントロールのドロップダウン矢印をクリックすると、システムから BCN_DROPDOWN 通知メッセージが送信され、その通知メッセージが OnDropDown メソッドによって処理されます。 ただし、CSplitButton オブジェクトは、分割ボタン コントロールのコンテナーになっているコントロールには BCN_DROPDOWN 通知を転送しません。 したがって、コンテナーになっているコントロールでその通知に対する応答としてカスタム アクションをサポートすることはできません。

コンテナーになっているコントロールでサポートするカスタム アクションを実装するには、CSplitButton オブジェクトの代わりに、BS_SPLITBUTTON スタイルの CButton オブジェクトを使用します。 その後、その CButton オブジェクトで BCN_DROPDOWN 通知のハンドラーを実装します。 詳細については、「ボタン スタイル」を参照してください。

分割ボタン コントロール自体でサポートするカスタム アクションを実装するには、メッセージ リフレクションを使用します。 そのためにはまず、CSplitButton クラスから独自のクラスを派生させ、CMySplitButton などの名前を付けます。 それから、BCN_DROPDOWN 通知を処理するために、以下のメッセージ マップをアプリケーションに追加します。

BEGIN_MESSAGE_MAP(CMySplitButton, CSplitButton)
   ON_NOTIFY_REFLECT(BCN_DROPDOWN, &CMySplitButton::OnDropDown)
END_MESSAGE_MAP()

参照

参照

CSplitButton クラス

階層図

テクニカル ノート 62: Windows コントロールへのメッセージ リフレクション (メッセージ返送)

ボタン スタイル

その他の技術情報

CSplitButton のメンバー