コンボ ボックス (Windows コントロール)

ここでは、コンボ ボックスで使用されるプログラミング要素について説明します。 コンボ ボックスは、COMBOBOX クラスによって定義される独自の種類のコントロールであり、リスト ボックスと編集コントロールの機能の多くが組み合わされています。

概要

トピック 内容
コンボ ボックスについて このセクションでは、さまざまな種類のコンボ ボックスについて説明します。
コンボ ボックスの機能 このドキュメントでは、コンボ ボックスの機能について説明します。
コンボ ボックスの使用 このセクションのコード例では、コンボ ボックスに関連付けられているタスクを実行する方法を示します。

関数

トピック 内容
DlgDirListComboBox コンボ ボックスの内容を、指定されたディレクトリ内のサブディレクトリとファイルの名前に置き換えます。 ファイル属性のセットを指定することで、名前のリストをフィルター処理できます。 名前のリストには、マップされたドライブ文字を含めることができます。
DlgDirSelectComboBoxEx DlgDirListComboBox 関数を使用して、入力されたコンボ ボックスから現在の選択を取得します。 選択は、ドライブ文字、ファイル、またはディレクトリ名として解釈されます。
GetComboBoxInfo 指定されたコンボ ボックスの情報を取得します。

マクロ

トピック 内容
ComboBox_AddItemData コンボ ボックス内にあるリストの指定された位置に、項目データを追加します。 このマクロを使用するか、CB_ADDSTRING メッセージを明示的に送信します。
ComboBox_AddString コンボ ボックス内にあるリストに文字列を追加します。 コンボ ボックスに CBS_SORT スタイルが設定されていない場合、文字列はリストの末尾に追加されます。 そうでない場合は、文字列がリストに挿入されてから、リストが並べ替えられます。 このマクロを使用するか、CB_ADDSTRING メッセージを明示的に送信します。
ComboBox_DeleteString コンボ ボックス内にあるリストから、指定された位置にあるアイテムを削除します。 このマクロを使用するか、CB_DELETESTRING メッセージを明示的に送信します。
ComboBox_Dir コンボ ボックスによって表示されるリストに名前を追加します。 このマクロは、指定された文字列およびファイル属性のセットに一致する、ディレクトリとファイルの名前を追加します。 また、マップされたドライブ文字を、コンボ ボックス内にあるリストに追加することもできます。 このマクロを使用するか、CB_DIR メッセージを明示的に送信します。
ComboBox_Enable コンボ ボックス コントロールを有効または無効にします。
ComboBox_FindItemData コンボ ボックス リスト内で、指定された項目データを含む最初の項目を検索します。 このマクロを使用するか、CB_FINDSTRING メッセージを明示的に送信します。
ComboBox_FindString コンボ ボックス リスト内で、指定した文字列で始まる最初の文字列を検索します。 このマクロを使用するか、CB_FINDSTRING メッセージを明示的に送信します。
ComboBox_FindStringExact コンボ ボックス リスト内で、指定された文字列と完全に一致する最初の文字列を検索します。ただし、この検索では大文字と小文字が区別されません。 このマクロを使用するか、CB_FINDSTRINGEXACT メッセージを明示的に送信します。
ComboBox_GetCount コンボ ボックス内のリスト ボックスに含まれる項目の数を取得します。 このマクロを使用するか、CB_GETCOUNT メッセージを明示的に送信します。
ComboBox_GetCueBannerText コンボ ボックスの編集コントロールに表示されるキュー バナー テキストを取得します。 このマクロを使用するか、 CB_GETCUEBANNER メッセージを明示的に送信します。
ComboBox_GetCurSel コンボ ボックスで現在選択されている項目のインデックスを取得します。 このマクロを使用するか、CB_GETCURSEL メッセージを明示的に送信します。
ComboBox_GetDroppedControlRect コンボ ボックスがドロップダウン状態であるときの画面座標を取得します。 このマクロを使用するか、CB_GETDROPPEDCONTROLRECT メッセージを明示的に送信します。
ComboBox_GetDroppedState コンボ ボックス コントロールのドロップ リストが表示されているかどうかを確認します。 このマクロを使用するか、CB_GETDROPPEDSTATE メッセージを明示的に送信します。
ComboBox_GetExtendedUI コンボ ボックスで、既定のユーザー インターフェイス (UI) を使用しているのか、または拡張 UI を使用しているのかを確認します。 このマクロを使用するか、CB_GETEXTENDEDUI メッセージを明示的に送信します。
ComboBox_GetItemData コンボ ボックス内の指定されたリスト アイテムに関連付けられているアプリケーション定義の値を取得します。 このマクロを使用するか、CB_GETITEMDATA メッセージを明示的に送信します。
ComboBox_GetItemHeight コンボ ボックス内にあるリスト アイテムの高さを取得します。 このマクロを使用するか、CB_GETITEMHEIGHT メッセージを明示的に送信します。
ComboBox_GetLBText コンボ ボックス内にあるリストから文字列を取得します。 このマクロを使用するか、CB_GETLBTEXT メッセージを明示的に送信します。
ComboBox_GetLBTextLen コンボ ボックス内にあるリスト内の文字列の長さを取得します。 このマクロを使用するか、CB_GETLBTEXTLEN メッセージを明示的に送信します。
ComboBox_GetMinVisible コンボ ボックスのドロップダウン リスト内に表示されている項目の最小数を取得します。
ComboBox_GetText コンボ ボックス コントロールからテキストを取得します。
ComboBox_GetTextLength コンボ ボックスのテキストに含まれる文字数を取得します。
ComboBox_InsertItemData コンボ ボックス内にあるリストの指定された位置に項目データを挿入します。 このマクロを使用するか、CB_INSERTSTRING メッセージを明示的に送信します。
ComboBox_InsertString コンボ ボックス内にあるリストの指定された位置に文字列を追加します。 このマクロを使用するか、CB_INSERTSTRING メッセージを明示的に送信します。
ComboBox_LimitText コンボ ボックスの編集コントロールにユーザーが入力できるテキストの長さを制限します。 このマクロを使用するか、CB_LIMITTEXT メッセージを明示的に送信します。
ComboBox_ResetContent コンボ ボックスのリスト ボックスと編集コントロールからすべての項目を削除します。 このマクロを使用するか、CB_RESETCONTENT メッセージを明示的に送信します。
ComboBox_SelectItemData コンボ ボックス内のリストで、指定された項目データを含む項目を検索します。 一致する項目が見つかった場合は、その項目が選択されます。 このマクロを使用するか、CB_SELECTSTRING メッセージを明示的に送信します。
ComboBox_SelectString コンボ ボックス内のリストで、指定された文字列に含まれる文字で始まる項目を検索します。 一致する項目が見つかった場合は、その項目が選択されます。 このマクロを使用するか、CB_SELECTSTRING メッセージを明示的に送信します。
ComboBox_SetCueBannerText コンボ ボックスの編集コントロールに表示されるキュー バナー テキストを設定します。
ComboBox_SetCurSel コンボ ボックスで現在選択されている項目を設定します。 このマクロを使用するか、CB_SETCURSEL メッセージを明示的に送信します。
ComboBox_SetExtendedUI CBS_DROPDOWN スタイルまたは CBS_DROPDOWNLIST スタイルが設定されているコンボ ボックスに対して、既定のユーザー インターフェイスまたは拡張 UI を選択します。 このマクロを使用するか、CB_SETEXTENDEDUI メッセージを明示的に送信します。
ComboBox_SetItemData コンボ ボックス内の指定されたリスト アイテムに関連付けられているアプリケーション定義の値を設定します。 このマクロを使用するか、CB_SETITEMDATA メッセージを明示的に送信します。
ComboBox_SetItemHeight コンボ ボックス内のリスト アイテムまたは選択フィールドの高さを設定します。 このマクロを使用するか、CB_SETITEMHEIGHT メッセージを明示的に送信します。
ComboBox_SetMinVisible コンボ ボックスのドロップダウン リスト内に表示されている項目の最小数を設定します。
ComboBox_SetText コンボ ボックスのテキストを設定します。
ComboBox_ShowDropdown コンボ ボックス内にあるリストを表示または非表示にします。 このマクロを使用するか、CB_SHOWDROPDOWN メッセージを明示的に送信します。

[メッセージ]

トピック 内容
CB_ADDSTRING コンボ ボックスのリスト ボックスに文字列を追加します。 コンボ ボックスに CBS_SORT スタイルが設定されていない場合、文字列はリストの末尾に追加されます。 そうでない場合は、文字列がリストに挿入されてから、リストが並べ替えられます。
CB_DELETESTRING コンボ ボックスのリスト ボックスから文字列を挿入します。
CB_DIR コンボ ボックスによって表示されるリストに名前を追加します。 このメッセージは、指定された文字列およびファイル属性のセットに一致する、ディレクトリとファイルの名前を追加します。 CB_DIR では、マップされたドライブ文字をリストに追加することもできます。
CB_FINDSTRING コンボ ボックスのリスト ボックスで、指定された文字列に含まれる文字で始まる項目を検索します。
CB_FINDSTRINGEXACT コンボ ボックス内の最初のリスト ボックス文字列で、lParam パラメーターで指定された文字列と一致するものを検索します。
CB_GETCOMBOBOXINFO 指定されたコンボ ボックスの情報を取得します。
CB_GETCOUNT コンボ ボックス内のリスト ボックスに含まれる項目の数を取得します。
CB_GETCUEBANNER コンボ ボックスの編集コントロールに表示されるキュー バナー テキストを取得します。 このメッセージを明示的に送信するか、ComboBox_GetCueBannerText マクロを使用します。
CB_GETCURSEL アプリケーションが CB_GETCURSEL メッセージを送信して、コンボ ボックスのリスト ボックスで現在選択されている項目があれば、その項目のインデックスを取得します。
CB_GETDROPPEDCONTROLRECT アプリケーションが CB_GETDROPPEDCONTROLRECT メッセージを送信して、ドロップダウン状態のコンボ ボックスの画面座標を取得します。
CB_GETDROPPEDSTATE コンボ ボックスのリスト ボックスがドロップダウン状態であるかどうかを判別します。
CB_GETDROPPEDWIDTH CBS_DROPDOWN スタイルまたは CBS_DROPDOWNLIST スタイルが設定されたコンボ ボックスのリスト ボックスについて、最小許容幅 (ピクセル単位) を取得します。
CB_GETEDITSEL コンボ ボックスのエディット コントロール内の現在の選択範囲の先頭と最後の文字の位置を取得します。
CB_GETEXTENDEDUI コンボ ボックスで既定のユーザー インターフェイスを使用しているのか、または拡張ユーザー インターフェイスを使用しているのかを判別します。
CB_GETHORIZONTALEXTENT リスト ボックスを水平方向にスクロールできる幅 (スクロール可能な幅) をピクセル単位で取得します。 これは、リスト ボックスに水平スクロール バーがある場合にのみ該当します。
CB_GETITEMDATA アプリケーションがコンボ ボックスに CB_GETITEMDATA メッセージを送信して、コンボ ボックス内の指定された項目に関連付けられている、アプリケーションによって入力される値を取得します。
CB_GETITEMHEIGHT コンボ ボックス内のリスト アイテムまたは選択フィールドの高さを判別します。
CB_GETLBTEXT コンボ ボックスのリストから文字列を取得します。
CB_GETLBTEXTLEN コンボ ボックスのリスト内にある文字列の長さ (文字数) を取得します。
CB_GETLOCALE コンボ ボックスの現在のロケールを取得します。 ロケールは、CBS_SORT スタイルのコンボ ボックスの表示テキストと、CB_ADDSTRING メッセージを使用して追加されたテキストの正しい並べ替え順序を決定するのに使用されます。
CB_GETMINVISIBLE コンボ ボックスのドロップダウン リスト内に表示されている項目の最小数を取得します。
CB_GETTOPINDEX アプリケーションが CB_GETTOPINDEX メッセージを送信して、コンボ ボックスのリスト ボックス部分に最初に表示される項目の、ゼロから始まるインデックスを取得します。 最初は、インデックスが 0 の項目はリスト ボックスの一番上にありますが、リスト ボックスの内容がスクロールされている場合は、別の項目が一番上にある可能性があります。
CB_INITSTORAGE コンボ ボックスのリスト ボックス部分に多数の項目を追加する前に、アプリケーションが CB_INITSTORAGE メッセージを送信します。 このメッセージにより、リスト ボックス項目を格納するためのメモリが割り当てられます。
CB_INSERTSTRING コンボ ボックスのリストに文字列または項目データを挿入します。 CB_ADDSTRING メッセージとは異なり、CB_INSERTSTRING メッセージでは、CBS_SORT スタイルが設定されたリストの並べ替えは行われません。
CB_LIMITTEXT コンボ ボックスの編集コントロールにユーザーが入力できるテキストの長さを制限します。
CB_RESETCONTENT コンボ ボックスのリスト ボックスと編集コントロールからすべての項目を削除します。
CB_SELECTSTRING コンボ ボックスのリストで、指定された文字列に含まれる文字で始まる項目を検索します。 一致する項目が見つかった場合は、その項目が選択され、編集コントロールにコピーされます。
CB_SETCUEBANNER コンボ ボックスの編集コントロールに表示されるキュー バナー テキストを設定します。
CB_SETCURSEL アプリケーションが CB_SETCURSEL メッセージを送信して、コンボ ボックスのリスト内にある文字列を選択します。 必要に応じて、リストがスクロールして文字列が表示されます。 コンボ ボックスの編集コントロール内のテキストが変更されて新しい選択範囲が反映され、リスト内でそれ以前に選択されていた場合は選択が解除されます。
CB_SETDROPPEDWIDTH アプリケーションが CB_SETDROPPEDWIDTH メッセージを送信して、CBS_DROPDOWN スタイルまたは CBS_DROPDOWNLIST スタイルが設定されているコンボ ボックスのリスト ボックスに最大許容幅 (ピクセル単位) を設定します。
CB_SETEDITSEL アプリケーションによって CB_SETEDITSEL メッセージが送信され、コンボ ボックスの編集コントロールで文字が選択されます。
CB_SETEXTENDEDUI アプリケーションが CB_SETEXTENDEDUI メッセージを送信して、CBS_DROPDOWN スタイルまたは CBS_DROPDOWNLIST スタイルが設定されているコンボ ボックスに対して既定の UI または拡張 UI を選択します。
CB_SETHORIZONTALEXTENT アプリケーションが CB_SETHORIZONTALEXTENT メッセージを送信して、リスト ボックスを水平方向にスクロールできる幅 (スクロール可能な幅) をピクセル単位で設定します。 リスト ボックスの幅がこの値より小さい場合、水平スクロール バーはリスト ボックス内の項目を水平方向にスクロールします。 リスト ボックスの幅がこの値以上である場合は、水平スクロール バーは非表示になります。または、コンボ ボックスに CBS_DISABLENOSCROLL スタイルが設定されている場合には、水平スクロール バーは無効になります。
CB_SETITEMDATA アプリケーションが CB_SETITEMDATA メッセージを送信して、コンボ ボックス内の指定された項目に関連付けられている値を設定します。
CB_SETITEMHEIGHT アプリケーションが CB_SETITEMHEIGHT メッセージを送信して、コンボ ボックス内のリスト アイテムまたは選択フィールドの高さを設定します。
CB_SETLOCALE アプリケーションが CB_SETLOCALE メッセージを送信して、コンボ ボックスの現在のロケールを設定します。 コンボ ボックスに CBS_SORT スタイルが設定されており、CB_ADDSTRING を使用して文字列が追加される場合は、リスト アイテムの並べ替え方法にコンボ ボックスのロケールが影響します。
CB_SETMINVISIBLE アプリケーションが CB_SETMINVISIBLE メッセージを送信して、コンボ ボックスのドロップダウン リストに表示される項目の最小数を設定します。
CB_SETTOPINDEX アプリケーションが CB_SETTOPINDEX メッセージを送信して、コンボ ボックスのリスト ボックスに特定の項目が確実に表示されるようにします。 指定した項目がリスト ボックスの一番上に表示されるか、最大スクロール範囲に達するまで、リスト ボックスの内容がシステムによってスクロールされます。
CB_SHOWDROPDOWN アプリケーションが CB_SHOWDROPDOWN メッセージを送信して、CBS_DROPDOWN スタイルまたは CBS_DROPDOWNLIST スタイルが設定されたコンボ ボックスのリスト ボックスを表示または非表示にします。

通知

トピック 内容
CBN_CLOSEUP コンボ ボックスのリスト ボックスが閉じられると、CBN_CLOSEUP 通知コードが送信されます。 コンボ ボックスの親ウィンドウは WM_COMMAND メッセージを介してこの通知コードを受信します。
CBN_DBLCLK コンボ ボックスのリスト ボックス内の文字列をユーザーがダブルクリックすると、CBN_DBLCLK 通知コードが送信されます。 コンボ ボックスの親ウィンドウは WM_COMMAND メッセージを介してこの通知コードを受信します。
CBN_DROPDOWN コンボ ボックスのリスト ボックスが表示される直前に、CBN_DROPDOWN 通知コードが送信されます。 コンボ ボックスの親ウィンドウは WM_COMMAND メッセージを介してこの通知コードを受信します。
CBN_EDITCHANGE コンボ ボックスの編集コントロール部分でテキストが変更される可能性があるアクションをユーザーが実行した後に、CBN_EDITCHANGE 通知コードが送信されます。 CBN_EDITUPDATE 通知コードとは異なり、この通知コードは、システムが画面を更新した後に送信されます。 コンボ ボックスの親ウィンドウは WM_COMMAND メッセージを通してこの通知コードを受信します。
CBN_EDITUPDATE 変更されたテキストが、コンボ ボックスの編集コントロール部分で表示される直前に、 CBN_EDITUPDATE 通知コードが送信されます。 この通知コードは、コントロールでテキストを書式設定した後、テキストを表示する前に送信されます。 コンボ ボックスの親ウィンドウは WM_COMMAND メッセージを介してこの通知コードを受信します。
CBN_ERRSPACE 特定の要求を満たせるだけのに十分なメモリをコンボ ボックスで割り当てられない場合に、CBN_ERRSPACE 通知コードが送信されます。 コンボ ボックスの親ウィンドウは WM_COMMAND メッセージを介してこの通知コードを受信します。
CBN_KILLFOCUS コンボ ボックスがキーボード フォーカスを失うと、CBN_KILLFOCUS 通知コードが送信されます。 コンボ ボックスの親ウィンドウは WM_COMMAND メッセージを介してこの通知コードを受信します。
CBN_SELCHANGE コンボ ボックスのリスト ボックスで現在の選択をユーザーが変更すると、CBN_SELCHANGE 通知コードが送信されます。 ユーザーは、リスト ボックスをクリックするか、矢印キーを使用すると、選択を変更できます。 コンボ ボックスの親ウィンドウは、この通知を WM_COMMAND メッセージの形式で受信します。CBN_SELCHANGE は wParam パラメーターの上位ワードに格納されます。
CBN_SELENDCANCEL ユーザーが項目を選択した後で別のコントロールを選択したりダイアログ ボックスを閉じたりすると、CBN_SELENDCANCEL 通知コードがに送信されます。 これは、ユーザーの最初の選択が無視されることを示します。 コンボ ボックスの親ウィンドウは WM_COMMAND メッセージを通してこの通知コードを受け取ります。
CBN_SELENDOK ユーザーがリスト アイテムを選択するか項目を選択した後にリストを閉じると、CBN_SELENDOK 通知コードが送信されます。 これは、ユーザーの選択が処理されることを示します。 コンボ ボックスの親ウィンドウに WM_COMMAND メッセージを介してこの通知コードが表示されます。
CBN_SETFOCUS コンボ ボックスがキーボード フォーカスを取得すると、CBN_SETFOCUS 通知コードが送信されます。 コンボ ボックスの親ウィンドウは WM_COMMAND メッセージを介してこの通知コードを受信します。
WM_COMPAREITEM システムが WM_COMPAREITEM メッセージを送信して、所有者描画のコンボ ボックスまたはリスト ボックスで、並べ替えられたリスト内の新しい項目の相対位置を判別します。 アプリケーションが新しい項目を追加するときは常に、CBS_SORT スタイルまたは LBS_SORT スタイルを指定して作成されたコンボ ボックスまたはリスト ボックスのオーナーに、システムからこのメッセージが送信されます。
WM_DRAWITEM 所有者描画のボタン、コンボ ボックス、リスト ボックス、またはメニューの視覚的要素が変更されたときに、そのボタン、コンボ ボックス、リスト ボックス、メニューの親ウィンドウに WM_DRAWITEM メッセージが送信されます。
WM_MEASUREITEM コントロールまたはメニューが作成されたときに、コンボ ボックス、リスト ボックス、リストビュー コントロール、またはメニュー項目のオーナー ウィンドウに WM_MEASUREITEM メッセージが送信されます。

構造体

トピック 内容
COMBOBOXINFO コンボ ボックスの状態情報が含まれます。
COMPAREITEMSTRUCT 並べ替えられた所有者描画のリスト ボックスまたはコンボ ボックス内にある 2 つの項目について、識別子と、アプリケーションによって提供されるデータを提供します。
DRAWITEMSTRUCT 所有者描画コントロールまたはメニュー項目の描画方法を決定するのに必要な情報をオーナー ウィンドウに提供します。 所有者描画コントロールまたはメニュー項目の所有者ウィンドウは、この構造体へのポインターを、WM_DRAWITEM メッセージの lParam パラメーターとして受け取ります。
MEASUREITEMSTRUCT 所有者描画コントロールまたはメニュー項目の寸法をシステムに通知します。 これにより、システムはコントロールに対するユーザー操作を正しく処理できます。

定数

トピック 内容
コンボ ボックス スタイル CreateWindow 関数または CreateWindowEx 関数を使用してコンボ ボックスを作成するには、COMBOBOX クラス、適切なウィンドウ スタイル定数、および以下のコンボ ボックス スタイルの組み合わせを指定します。