CComboBox

CComboBoxクラスは Windows コンボ ボックスの機能を提供します。
コンボ ボックスは、スタティック コントロールまたはエディット コントロールと組み合わせたリスト ボックスで構成されています。コントロールのリスト ボックス部分のすべての回でが表示されることがあります。 またはユーザー コントロールの横のドロップダウン矢印を選択したときだけドロップダウンがあります。
リスト ボックスで現在選択されている項目 (もしあれば) で静的表示されます。 またはコントロールを編集します。また、コンボ ボックス ドロップダウン リスト スタイルがある場合は、ユーザーの最初の文字のいずれかの一覧で、入力することができ、[リスト] ボックスで、表示されている場合は、次のアイテムが最初の文字を強調します。
次の表は、3 つのコンボ ボックススタイル.nbsp を比較します。(&N);
| スタイル |
リスト ボックスが表示されているとき? |
静的または編集のコントロール? |
| 単純です |
常に |
編集 |
| ドロップダウン |
ドロップダウンされたとき |
編集 |
| ドロップ ダウン リスト |
ドロップダウンされたとき |
静的 |
CComboBoxオブジェクトは、ダイアログ テンプレートからまたは、コードで直接作成できます。両方のケースでは、まずCComboBox CComboBoxオブジェクトを作成するコンス トラクターを呼び出す;コントロールを作成し、 CComboBoxオブジェクトにアタッチするには、 Createメンバー関数を呼び出す。
コンボ ボックスで親 (通常はCDialogの派生クラス) に送信される Windows の通知メッセージを処理する場合は、親クラスに各メッセージをメッセージ マップ エントリとメッセージ ハンドラー メンバー関数を追加します。
各メッセージ マップ エントリを次の形式します。:
ON_(の通知id,memberFxn)
ここで、通知とmemberFxnを送信するコンボ ボックス コントロールの子ウィンドウ IDの idを指定します、通知を処理するために書かれている親メンバー関数の名前です。
親の関数プロトタイプは次のとおりです。:
afx_msg void memberFxn( );
特定の通知が送信される順序は予測できません。特に、 CBN_SELCHANGE通知の前に、または後にCBN_CLOSEUP通知発生します。
潜在的なメッセージ マップ エントリを次に示します:
-
ON_CBN_CLOSEUP特価;(Windows 3.1 以降。)コンボ ボックスのリスト ボックスが閉じました。この通知メッセージは、 CBS_SIMPLEスタイルを持つコンボ ボックスについて送信されません。(&N)。
-
ON_CBN_DBLCLK特価;ユーザーは、コンボ ボックスのリスト ボックス内の文字列をダブルクリックします。この通知メッセージは、 CBS_SIMPLEスタイルを持つコンボ ボックスにのみ送信されます。CBS_DROPDOWNまたはCBS_DROPDOWNLISTスタイルのコンボ ボックスのダブルクリックを実行できないため、1 回のクリック、リスト ボックスを非表示に(&N)。
-
ON_CBN_DROPDOWN特価;コンボ ボックスのリスト ボックス ドロップするです (表示にはできる)。この通知メッセージは、 CBS_DROPDOWNまたはCBS_DROPDOWNLISTスタイルを持つコンボ ボックスにのみ発生することができます。(&N)。
-
ON_CBN_EDITCHANGE特価;ユーザーは、コンボ ボックスのエディット コントロール部分のテキストを変更している可能性があります、アクションを撮影しています。Windows が、画面を更新した後CBN_EDITUPDATEメッセージとは異なり、このメッセージが送信されます。コンボ ボックス、 CBS_DROPDOWNLISTスタイルがある場合は送信されません。(&N)。
-
ON_CBN_EDITUPDATE特価;コンボ ボックスのエディット コントロール部分について変更されたテキストを表示することです。この通知メッセージは、コントロール テキスト書式を設定し、テキストを表示する前に送信されます。コンボ ボックス、 CBS_DROPDOWNLISTスタイルがある場合は送信されません。(&N)。
-
ON_CBN_ERRSPACE特価;コンボ ボックスは、特定の要求を満たすために十分なメモリを割り当てることができません。(&N)。
-
ON_CBN_SELENDCANCEL特価;(Windows 3.1 以降。)ユーザーの選択をキャンセルするかを示します。ユーザーが項目をクリックし、別のウィンドウまたはコンボ ボックスのリスト ボックスを非表示にするコントロールをクリックします。この通知メッセージは、ユーザーの選択を無視することを示すためにCBN_CLOSEUP通知メッセージの前に送信されます。(同様に、 CBS_SIMPLEスタイルを持つコンボ ボックスの場合)、 CBN_CLOSEUP通知メッセージは送信されない場合でも、 CBN_SELENDCANCELまたはCBN_SELENDOK通知メッセージが送信されます。(&N)。
-
ON_CBN_SELENDOK特価;ユーザーが項目を選択、ENTER キーを押すまたはコンボ ボックスのリスト ボックスを非表示にするには、下方向キーをクリックします。この通知メッセージは、ユーザーの選択有効と見なされるべきであることを示すためにCBN_CLOSEUPメッセージの前に送信されます。(同様に、 CBS_SIMPLEスタイルを持つコンボ ボックスの場合)、 CBN_CLOSEUP通知メッセージは送信されない場合でも、 CBN_SELENDCANCELまたはCBN_SELENDOK通知メッセージが送信されます。(&N)。
-
ON_CBN_KILLFOCUS特価;コンボ ボックスが入力フォーカスを失うです。(&N)。
-
ON_CBN_SELCHANGE特価;コンボ ボックスのリスト ボックスでの選択リスト ボックスをクリックしてまたは矢印キーを使用して、選択を変更するユーザーの結果として変更されることです。このメッセージを処理するとき、コンボ ボックスのエディット コントロール内のテキストのみGetLBTextまたは他の類似関数を介して取り出せます。GetWindowTextは使用できません。(&N)。
-
ON_CBN_SETFOCUS特価;コンボ ボックスが入力フォーカスを受け取る(&N)。
内] ダイアログ ボックス (ダイアログ リソースを使って) CComboBoxオブジェクトを作成する場合は、ユーザー ダイアログ ボックスを閉じたときCComboBoxオブジェクトに自動的に破棄されます。
別のウィンドウ オブジェクト内のCComboBoxオブジェクトを埋め込む場合は、それを破壊する必要はありません。スタックにCComboBoxオブジェクトを作成する場合は、それが自動的に破棄されます。新しい関数を使用して、ヒープにCComboBoxオブジェクトを作成する場合を削除Windows コンボ ボックスが破棄されると破棄するオブジェクトを呼び出す必要があります。
#include lt;afxwin.h>
クラス メンバーの |nbsp;基本クラス|階層図(&N)
サンプル特価; MFC サンプル CTRLBARS(&N)
参照特価;CWnd、 CButton、 CEdit、 CListBox、 CScrollBar、 CStatic、 CDialog(&N)