CComboBox クラスCComboBox Class

Windows のコンボ ボックスの機能が用意されています。Provides the functionality of a Windows combo box.

構文Syntax

class CComboBox : public CWnd

メンバーMembers

パブリック コンストラクターPublic Constructors

NameName DescriptionDescription
CComboBox:: CComboBoxCComboBox::CComboBox CComboBox オブジェクトを構築します。Constructs a CComboBox object.

パブリック メソッドPublic Methods

NameName DescriptionDescription
CComboBox::AddStringCComboBox::AddString コンボボックスのリストボックス内のリストの末尾に文字列を追加するか、CBS_SORT スタイルを持つリストボックスの並べ替えられた位置に追加します。Adds a string to the end of the list in the list box of a combo box, or at the sorted position for list boxes with the CBS_SORT style.
CComboBox:: ClearCComboBox::Clear エディットコントロール内の現在の選択項目 (存在する場合) を削除 (クリア) します。Deletes (clears) the current selection, if any, in the edit control.
CComboBox:: CompareItemCComboBox::CompareItem 並べ替えられたオーナー描画コンボボックス内の新しいリスト項目の相対位置を決定するために、フレームワークによって呼び出されます。Called by the framework to determine the relative position of a new list item in a sorted owner-drawn combo box.
CComboBox:: コピーCComboBox::Copy 現在の選択内容 (存在する場合) を CF_TEXT 形式でクリップボードにコピーします。Copies the current selection, if any, onto the Clipboard in CF_TEXT format.
CComboBox:: CreateCComboBox::Create コンボボックスを作成し、CComboBox オブジェクトにアタッチします。Creates the combo box and attaches it to the CComboBox object.
CComboBox:: CutCComboBox::Cut エディットコントロール内の現在の選択項目を削除 (切り取り) し、削除されたテキストを CF_TEXT 形式でクリップボードにコピーします。Deletes (cuts) the current selection, if any, in the edit control and copies the deleted text onto the Clipboard in CF_TEXT format.
CComboBox::D eleteItemCComboBox::DeleteItem オーナー描画コンボボックスからリスト項目が削除されたときに、フレームワークによって呼び出されます。Called by the framework when a list item is deleted from an owner-drawn combo box.
CComboBox::D eleteStringCComboBox::DeleteString コンボボックスのリストボックスから文字列を削除します。Deletes a string from the list box of a combo box.
CComboBox::D irCComboBox::Dir コンボボックスのリストボックスにファイル名のリストを追加します。Adds a list of file names to the list box of a combo box.
CComboBox: rawItem:DCComboBox::DrawItem オーナー描画コンボボックスの外観が変化したときにフレームワークによって呼び出されます。Called by the framework when a visual aspect of an owner-drawn combo box changes.
CComboBox:: FindStringCComboBox::FindString コンボボックスのリストボックス内の指定したプレフィックスを含む最初の文字列を検索します。Finds the first string that contains the specified prefix in the list box of a combo box.
CComboBox:: FindStringExactCComboBox::FindStringExact 指定した文字列と一致する最初のリストボックスの文字列 (コンボボックス内) を検索します。Finds the first list-box string (in a combo box) that matches the specified string.
CComboBox:: GetComboBoxInfoCComboBox::GetComboBoxInfo CComboBox オブジェクトに関する情報を取得します。Retrieves information about the CComboBox object.
CComboBox:: GetCountCComboBox::GetCount コンボボックスのリストボックス内の項目の数を取得します。Retrieves the number of items in the list box of a combo box.
CComboBox:: GetCueBannerCComboBox::GetCueBanner コンボボックスコントロールに表示されるキューテキストを取得します。Gets the cue text that is displayed for a combo box control.
CComboBox:: GetCurSelCComboBox::GetCurSel コンボボックスのリストボックス内で現在選択されている項目 (存在する場合) のインデックスを取得します。Retrieves the index of the currently selected item, if any, in the list box of a combo box.
CComboBox:: GetDroppedControlRectCComboBox::GetDroppedControlRect ドロップダウンコンボボックスの表示 (ドロップダウン) リストボックスの画面座標を取得します。Retrieves the screen coordinates of the visible (dropped down) list box of a drop-down combo box.
CComboBox:: GetDroppedStateCComboBox::GetDroppedState ドロップダウンコンボボックスのリストボックスを表示するかどうかを決定します (ドロップダウン)。Determines whether the list box of a drop-down combo box is visible (dropped down).
CComboBox:: GetDroppedWidthCComboBox::GetDroppedWidth コンボボックスのドロップダウンリストボックスの部分で許容される最小幅を取得します。Retrieves the minimum allowed width for the drop-down list-box portion of a combo box.
CComboBox:: GetEditSelCComboBox::GetEditSel コンボボックスの編集コントロールの現在の選択範囲の開始文字と終了文字の位置を取得します。Gets the starting and ending character positions of the current selection in the edit control of a combo box.
CComboBox:: GetExtendedUICComboBox::GetExtendedUI コンボボックスに既定のユーザーインターフェイスまたは拡張ユーザーインターフェイスがあるかどうかを判断します。Determines whether a combo box has the default user interface or the extended user interface.
CComboBox:: GetHorizontalExtentCComboBox::GetHorizontalExtent コンボボックスのリストボックスの部分を水平方向にスクロールできる幅 (ピクセル単位) を返します。Returns the width in pixels that the list-box portion of the combo box can be scrolled horizontally.
CComboBox:: GetItemDataCComboBox::GetItemData 指定したコンボボックス項目に関連付けられている、アプリケーションが提供した32ビット値を取得します。Retrieves the application-supplied 32-bit value associated with the specified combo-box item.
CComboBox:: GetItemDataPtrCComboBox::GetItemDataPtr 指定したコンボボックス項目に関連付けられている、アプリケーションによって提供された32ビットポインターを取得します。Retrieves the application-supplied 32-bit pointer that is associated with the specified combo-box item.
CComboBox:: GetItemHeightCComboBox::GetItemHeight コンボボックス内のリスト項目の高さを取得します。Retrieves the height of list items in a combo box.
CComboBox:: GetLBTextCComboBox::GetLBText コンボボックスのリストボックスから文字列を取得します。Gets a string from the list box of a combo box.
CComboBox:: GetLBTextLenCComboBox::GetLBTextLen コンボボックスのリストボックス内の文字列の長さを取得します。Gets the length of a string in the list box of a combo box.
CComboBox:: GetLocaleCComboBox::GetLocale コンボボックスのロケール識別子を取得します。Retrieves the locale identifier for a combo box.
CComboBox:: GetMinVisibleCComboBox::GetMinVisible 現在のコンボボックスのドロップダウンリストに表示される項目の最小数を取得します。Gets the minimum number of visible items in the drop-down list of the current combo box.
CComboBox:: GetTopIndexCComboBox::GetTopIndex コンボボックスのリストボックスの部分に表示される最初の項目のインデックスを返します。Returns the index of the first visible item in the list-box portion of the combo box.
CComboBox:: InitStorageCComboBox::InitStorage 事前は、コンボボックスのリストボックスの部分に含まれる項目と文字列のメモリブロックを示します。Preallocates blocks of memory for items and strings in the list-box portion of the combo box.
CComboBox::InsertStringCComboBox::InsertString コンボ ボックスのリスト ボックスに文字列を挿入します。Inserts a string into the list box of a combo box.
CComboBox:: LimitTextCComboBox::LimitText ユーザーがコンボボックスのエディットコントロールに入力できるテキストの長さを制限します。Limits the length of the text that the user can enter into the edit control of a combo box.
CComboBox:: MeasureItemCComboBox::MeasureItem オーナー描画コンボボックスが作成されたときに、コンボボックスのサイズを決定するためにフレームワークによって呼び出されます。Called by the framework to determine combo box dimensions when an owner-drawn combo box is created.
CComboBox::P asteCComboBox::Paste クリップボードのデータを現在のカーソル位置にあるエディットコントロールに挿入します。Inserts the data from the Clipboard into the edit control at the current cursor position. クリップボードに CF_TEXT 形式のデータが含まれている場合にのみ、データが挿入されます。Data is inserted only if the Clipboard contains data in CF_TEXT format.
CComboBox:: ResetContentCComboBox::ResetContent リストボックスからすべての項目を削除し、コンボボックスのコントロールを編集します。Removes all items from the list box and edit control of a combo box.
CComboBox:: SelectStringCComboBox::SelectString コンボボックスのリストボックスで文字列を検索し、文字列が見つかった場合はリストボックス内の文字列を選択して、その文字列を編集コントロールにコピーします。Searches for a string in the list box of a combo box and, if the string is found, selects the string in the list box and copies the string to the edit control.
CComboBox:: SetCueBannerCComboBox::SetCueBanner コンボボックスコントロールに表示されるキューテキストを設定します。Sets the cue text that is displayed for a combo box control.
CComboBox:: SetCurSelCComboBox::SetCurSel コンボボックスのリストボックスで文字列を選択します。Selects a string in the list box of a combo box.
CComboBox:: SetDroppedWidthCComboBox::SetDroppedWidth コンボボックスのドロップダウンリストボックスの部分に許可される最小の幅を設定します。Sets the minimum allowed width for the drop-down list-box portion of a combo box.
CComboBox:: SetEditSelCComboBox::SetEditSel コンボボックスの編集コントロールで文字を選択します。Selects characters in the edit control of a combo box.
CComboBox:: SetExtendedUICComboBox::SetExtendedUI CBS_DROPDOWN または CBS_DROPDOWNLIST スタイルを持つコンボボックスの既定のユーザーインターフェイスまたは拡張ユーザーインターフェイスを選択します。Selects either the default user interface or the extended user interface for a combo box that has the CBS_DROPDOWN or CBS_DROPDOWNLIST style.
CComboBox:: SetHorizontalExtentCComboBox::SetHorizontalExtent コンボボックスのリストボックスの部分を水平方向にスクロールできる幅 (ピクセル単位) を設定します。Sets the width in pixels that the list-box portion of the combo box can be scrolled horizontally.
CComboBox:: SetItemDataCComboBox::SetItemData コンボボックス内の指定した項目に関連付けられている32ビット値を設定します。Sets the 32-bit value associated with the specified item in a combo box.
CComboBox:: SetItemDataPtrCComboBox::SetItemDataPtr コンボボックス内の指定した項目に関連付けられている32ビットポインターを設定します。Sets the 32-bit pointer associated with the specified item in a combo box.
CComboBox:: SetItemHeightCComboBox::SetItemHeight コンボボックスのリスト項目の高さ、またはコンボボックスの編集コントロール (または静的テキスト) 部分の高さを設定します。Sets the height of list items in a combo box or the height of the edit-control (or static-text) portion of a combo box.
CComboBox:: SetLocaleCComboBox::SetLocale コンボボックスのロケール識別子を設定します。Sets the locale identifier for a combo box.
CComboBox:: SetMinVisibleItemsCComboBox::SetMinVisibleItems 現在のコンボボックスのドロップダウンリストに表示される項目の最小数を設定します。Sets the minimum number of visible items in the drop-down list of the current combo box.
CComboBox:: SetTopIndexCComboBox::SetTopIndex コンボボックスのリストボックスの部分に、指定したインデックスを持つ項目を先頭に表示するように指示します。Tells the list-box portion of the combo box to display the item with the specified index at the top.
CComboBox:: ShowDropDownCComboBox::ShowDropDown CBS_DROPDOWN または CBS_DROPDOWNLIST スタイルを持つコンボボックスのリストボックスの表示と非表示を切り替えます。Shows or hides the list box of a combo box that has the CBS_DROPDOWN or CBS_DROPDOWNLIST style.

解説Remarks

コンボボックスは、スタティックコントロールまたは編集コントロールのいずれかと組み合わせたリストボックスで構成されます。A combo box consists of a list box combined with either a static control or edit control. コントロールのリストボックスの部分は常に表示されるか、ユーザーがコントロールの横にあるドロップダウン矢印を選択したときにのみドロップダウンされることがあります。The list-box portion of the control may be displayed at all times or may only drop down when the user selects the drop-down arrow next to the control.

リストボックス内の現在選択されている項目 (存在する場合) は、静的コントロールまたは編集コントロールに表示されます。The currently selected item (if any) in the list box is displayed in the static or edit control. また、コンボボックスにドロップダウンリストのスタイルがある場合、ユーザーはリスト内のいずれかの項目の最初の文字を入力できます。リストボックスが表示されている場合は、その最初の文字が次の項目を強調表示します。In addition, if the combo box has the drop-down list style, the user can type the initial character of one of the items in the list, and the list box, if visible, will highlight the next item with that initial character.

次の表は、3つのコンボボックススタイルを比較したものです。The following table compares the three combo-box styles.

StyleStyle リストボックスが表示されているときWhen is list box visible 静的コントロールまたは編集コントロールStatic or edit control
シンプルSimple Always (常に)Always [編集]Edit
Drop-downDrop-down ドロップダウンしたときWhen dropped down [編集]Edit
ドロップダウン リストDrop-down list ドロップダウンしたときWhen dropped down 静的Static

CComboBox オブジェクトは、ダイアログテンプレートから作成することも、コード内で直接作成することもできます。You can create a CComboBox object from either a dialog template or directly in your code. どちらの場合も、最初にコンストラクター CComboBox を呼び出して、CComboBox オブジェクトを構築します。次に、 create member 関数を呼び出して、コントロールを作成し、CComboBox オブジェクトにアタッチします。In both cases, first call the constructor CComboBox to construct the CComboBox object; then call the Create member function to create the control and attach it to the CComboBox object.

コンボボックスから親 (通常は CDialogから派生したクラス) に送信される Windows 通知メッセージを処理する場合は、各メッセージの親クラスにメッセージマップエントリとメッセージハンドラーメンバー関数を追加します。If you want to handle Windows notification messages sent by a combo box to its parent (usually a class derived from CDialog), add a message-map entry and message-handler member function to the parent class for each message.

各メッセージマップエントリには、次の形式があります。Each message-map entry takes the following form:

_ 通知 ( idmemberFxn )ON_Notification ( id, memberFxn )

ここで id は、通知を送信するコンボボックスコントロールの子ウィンドウ ID を指定します。 memberFxn は、通知を処理するために記述した親メンバー関数の名前です。where id specifies the child-window ID of the combo-box control sending the notification and memberFxn is the name of the parent member function you have written to handle the notification.

親の関数プロトタイプは次のとおりです。The parent's function prototype is as follows:

afx_msg void memberFxn ();afx_msg void memberFxn ( );

特定の通知を送信する順序を予測することはできません。The order in which certain notifications will be sent cannot be predicted. 特に、CBN_CLOSEUP 通知の前または後に CBN_SELCHANGE 通知が発生する場合があります。In particular, a CBN_SELCHANGE notification may occur either before or after a CBN_CLOSEUP notification.

考えられるメッセージマップエントリは次のとおりです。Potential message-map entries are the following:

  • ON_CBN_CLOSEUP (Windows 3.1 以降)コンボボックスのリストボックスが閉じられました。ON_CBN_CLOSEUP (Windows 3.1 and later.) The list box of a combo box has closed. この通知メッセージは、 CBS_SIMPLEスタイルを持つコンボボックスには送信されません。This notification message is not sent for a combo box that has the CBS_SIMPLE style.

  • ユーザーがコンボボックスのリストボックス内の文字列をダブルクリック ON_CBN_DBLCLK ます。ON_CBN_DBLCLK The user double-clicks a string in the list box of a combo box. この通知メッセージは、CBS_SIMPLE スタイルが適用されたコンボボックスに対してのみ送信されます。This notification message is only sent for a combo box with the CBS_SIMPLE style. CBS_DROPDOWNスタイルまたはCBS_DROPDOWNLISTスタイルを使用しているコンボボックスでは、シングルクリックでリストボックスが非表示になっているため、ダブルクリックを行うことはできません。For a combo box with the CBS_DROPDOWN or CBS_DROPDOWNLIST style, a double-click cannot occur because a single click hides the list box.

  • コンボボックスのリストボックスがドロップダウンしている ON_CBN_DROPDOWN (表示されるようになります)。ON_CBN_DROPDOWN The list box of a combo box is about to drop down (be made visible). この通知メッセージは、CBS_DROPDOWN または CBS_DROPDOWNLIST スタイルを持つコンボボックスに対してのみ発生します。This notification message can occur only for a combo box with the CBS_DROPDOWN or CBS_DROPDOWNLIST style.

  • コンボボックスの編集コントロール部分のテキストを変更した可能性のあるアクションをユーザーが実行した ON_CBN_EDITCHANGE。ON_CBN_EDITCHANGE The user has taken an action that may have altered the text in the edit-control portion of a combo box. CBN_EDITUPDATE メッセージとは異なり、このメッセージは Windows が画面を更新した後に送信されます。Unlike the CBN_EDITUPDATE message, this message is sent after Windows updates the screen. コンボボックスに CBS_DROPDOWNLIST スタイルがある場合は送信されません。It is not sent if the combo box has the CBS_DROPDOWNLIST style.

  • コンボボックスの編集コントロール部分で ON_CBN_EDITUPDATE 変更されたテキストを表示しようとしています。ON_CBN_EDITUPDATE The edit-control portion of a combo box is about to display altered text. この通知メッセージは、コントロールがテキストを書式設定した後、テキストを表示する前に送信されます。This notification message is sent after the control has formatted the text but before it displays the text. コンボボックスに CBS_DROPDOWNLIST スタイルがある場合は送信されません。It is not sent if the combo box has the CBS_DROPDOWNLIST style.

  • ON_CBN_ERRSPACE コンボボックスは、特定の要求を満たすのに十分なメモリを割り当てることができません。ON_CBN_ERRSPACE The combo box cannot allocate enough memory to meet a specific request.

  • ON_CBN_SELENDCANCEL (Windows 3.1 以降)ユーザーの選択を取り消す必要があることを示します。ON_CBN_SELENDCANCEL (Windows 3.1 and later.) Indicates the user's selection should be canceled. ユーザーが項目をクリックし、別のウィンドウまたはコントロールをクリックすると、コンボボックスのリストボックスが非表示になります。The user clicks an item and then clicks another window or control to hide the list box of a combo box. この通知メッセージは、CBN_CLOSEUP 通知メッセージの前に送信され、ユーザーの選択が無視されることを示します。This notification message is sent before the CBN_CLOSEUP notification message to indicate that the user's selection should be ignored. CBN_SELENDCANCEL または CBN_SELENDOK 通知メッセージが送信されるのは、CBN_CLOSEUP 通知メッセージが送信されていない場合 (CBS_SIMPLE スタイルのコンボボックスの場合と同様) です。The CBN_SELENDCANCEL or CBN_SELENDOK notification message is sent even if the CBN_CLOSEUP notification message is not sent (as in the case of a combo box with the CBS_SIMPLE style).

  • ユーザーが項目を選択し、ENTER キーを押すか、下方向キーをクリックすると、コンボボックスのリストボックスが非表示に ON_CBN_SELENDOK ます。ON_CBN_SELENDOK The user selects an item and then either presses the ENTER key or clicks the DOWN ARROW key to hide the list box of a combo box. この通知メッセージは、CBN_CLOSEUP メッセージの前に送信され、ユーザーの選択が有効と見なされることを示します。This notification message is sent before the CBN_CLOSEUP message to indicate that the user's selection should be considered valid. CBN_SELENDCANCEL または CBN_SELENDOK 通知メッセージが送信されるのは、CBN_CLOSEUP 通知メッセージが送信されていない場合 (CBS_SIMPLE スタイルのコンボボックスの場合と同様) です。The CBN_SELENDCANCEL or CBN_SELENDOK notification message is sent even if the CBN_CLOSEUP notification message is not sent (as in the case of a combo box with the CBS_SIMPLE style).

  • コンボボックス ON_CBN_KILLFOCUS、入力フォーカスが失われています。ON_CBN_KILLFOCUS The combo box is losing the input focus.

  • コンボボックスのリストボックスで選択した内容が、ユーザーがリストボックスをクリックするか、方向キーを使用して選択を変更した結果として変更されることを ON_CBN_SELCHANGE します。ON_CBN_SELCHANGE The selection in the list box of a combo box is about to be changed as a result of the user either clicking in the list box or changing the selection by using the arrow keys. このメッセージを処理する場合、コンボボックスのエディットコントロールのテキストは、GetLBText または他の同様の関数を使用してのみ取得できます。When processing this message, the text in the edit control of the combo box can only be retrieved via GetLBText or another similar function. GetWindowText は使用できません。GetWindowText cannot be used.

  • コンボボックス ON_CBN_SETFOCUS 入力フォーカスを受け取ります。ON_CBN_SETFOCUS The combo box receives the input focus.

ダイアログボックス内で (ダイアログリソースを使用して) CComboBox オブジェクトを作成すると、ユーザーがダイアログボックスを閉じたときに CComboBox オブジェクトが自動的に破棄されます。If you create a CComboBox object within a dialog box (through a dialog resource), the CComboBox object is automatically destroyed when the user closes the dialog box.

別のウィンドウオブジェクト内に CComboBox オブジェクトを埋め込む場合は、そのオブジェクトを破棄する必要はありません。If you embed a CComboBox object within another window object, you do not need to destroy it. スタックに CComboBox オブジェクトを作成すると、そのオブジェクトは自動的に破棄されます。If you create the CComboBox object on the stack, it is destroyed automatically. 新しい関数を使用してヒープに CComboBox オブジェクトを作成する場合は、Windows のコンボボックスが破棄されたときに、オブジェクトに対してdeleteを呼び出して破棄する必要があります。If you create the CComboBox object on the heap by using the new function, you must call delete on the object to destroy it when the Windows combo box is destroyed.

メモWM_KEYDOWN メッセージと WM_CHAR メッセージを処理する場合は、コンボボックスの [編集] コントロールと [リストボックス] コントロールをサブクラス化し、CEditCListBoxからクラスを派生させ、それらのメッセージのハンドラーを派生クラスに追加する必要があります。Note If you want to handle WM_KEYDOWN and WM_CHAR messages, you have to subclass the combo box's edit and list box controls, derive classes from CEdit and CListBox, and add handlers for those messages to the derived classes. 詳細については、「 CWnd:: SubclassWindow」を参照してください。For more information, see CWnd::SubclassWindow.

継承階層Inheritance Hierarchy

CObjectCObject

CCmdTargetCCmdTarget

から派生しているのではないCWnd

CComboBox

必要条件Requirements

ヘッダー: afxwin.hHeader: afxwin.h

CComboBox:: AddStringCComboBox::AddString

コンボボックスのリストボックスに文字列を追加します。Adds a string to the list box of a combo box.

int AddString(LPCTSTR lpszString);

パラメーターParameters

lpszStringlpszString
は、追加する null で終わる文字列を指します。Points to the null-terminated string that is to be added.

戻り値Return Value

戻り値が0以上の場合は、リストボックス内の文字列に対する0から始まるインデックスです。If the return value is greater than or equal to 0, it is the zero-based index to the string in the list box. エラーが発生した場合、戻り値は CB_ERR ます。新しい文字列を格納するのに十分な領域がない場合、戻り値は CB_ERRSPACE ます。The return value is CB_ERR if an error occurs; the return value is CB_ERRSPACE if insufficient space is available to store the new string.

解説Remarks

リストボックスがCBS_SORTスタイルで作成されなかった場合、文字列はリストの末尾に追加されます。If the list box was not created with the CBS_SORT style, the string is added to the end of the list. それ以外の場合は、文字列がリストに挿入され、リストが並べ替えられます。Otherwise, the string is inserted into the list, and the list is sorted.

注意

この関数は、Windows ComboBoxEx コントロールではサポートされていません。This function is not supported by the Windows ComboBoxEx control. このコントロールの詳細については、Windows SDK の「 ComboBoxEx Controls 」を参照してください。For more information on this control, see ComboBoxEx Controls in the Windows SDK.

リスト内の特定の位置に文字列を挿入するには、 Insertstringメンバー関数を使用します。To insert a string into a specific location within the list, use the InsertString member function.

Example

// Add 20 items to the combo box.
CString str;
for (int i = 0; i < 20; i++)
{
   str.Format(_T("item string %d"), i);
   m_pComboBox->AddString(str);
}

CComboBox:: CComboBoxCComboBox::CComboBox

CComboBox オブジェクトを構築します。Constructs a CComboBox object.

CComboBox();

Example

// Declare a local CComboBox object.
CComboBox myComboBox;

// Declare a dynamic CComboBox object.
CComboBox *pmyComboBox = new CComboBox;

CComboBox:: ClearCComboBox::Clear

コンボボックスのエディットコントロール内の現在の選択項目を削除 (クリア) します。Deletes (clears) the current selection, if any, in the edit control of the combo box.

void Clear();

解説Remarks

現在の選択範囲を削除し、削除された内容をクリップボードに配置するには、 Cutメンバー関数を使用します。To delete the current selection and place the deleted contents onto the Clipboard, use the Cut member function.

Example

// Delete all of the text from the combo box's edit control.
m_MyComboBox.SetEditSel(0, -1);
m_MyComboBox.Clear();

CComboBox:: CompareItemCComboBox::CompareItem

並べ替えられたオーナー描画コンボボックスのリストボックスの部分における新しい項目の相対位置を決定するために、フレームワークによって呼び出されます。Called by the framework to determine the relative position of a new item in the list-box portion of a sorted owner-draw combo box.

virtual int CompareItem(LPCOMPAREITEMSTRUCT lpCompareItemStruct);

パラメーターParameters

lpCompareItemStructlpCompareItemStruct
COMPAREITEMSTRUCT構造体への long ポインター。A long pointer to a COMPAREITEMSTRUCT structure.

戻り値Return Value

COMPAREITEMSTRUCT 構造体で記述されている2つの項目の相対位置を示します。Indicates the relative position of the two items described in the COMPAREITEMSTRUCT structure. 次のいずれかの値を指定できます。It can be any of the following values:

Value 意味Meaning
- 1- 1 項目1は項目2の前に並べ替えられます。Item 1 sorts before item 2.
00 項目1と項目2は同じように並べ替えられます。Item 1 and item 2 sort the same.
11 項目1は項目2の後に並べ替えます。Item 1 sorts after item 2.

COMPAREITEMSTRUCTの説明については、「 CWnd:: OnCompareItem 」を参照してください。See CWnd::OnCompareItem for a description of COMPAREITEMSTRUCT.

解説Remarks

既定では、このメンバー関数は何も行いません。By default, this member function does nothing. LBS_SORT スタイルを使用してオーナー描画コンボボックスを作成する場合は、このメンバー関数をオーバーライドして、リストボックスに追加された新しい項目の並べ替えがフレームワークによってサポートされるようにする必要があります。If you create an owner-draw combo box with the LBS_SORT style, you must override this member function to assist the framework in sorting new items added to the list box.

Example

// CMyComboBox is my owner-drawn combo box derived from CComboBox. This
// example compares two items using strcmp to sort items in reverse
// alphabetical order. The combo box control was created with the
// following code:
//   pmyComboBox->Create(
//      WS_CHILD|WS_VISIBLE|WS_BORDER|WS_HSCROLL|WS_VSCROLL|
//      CBS_SORT|CBS_OWNERDRAWVARIABLE,
//      myRect, pParentWnd, 1);
//
int CMyComboBox::CompareItem(LPCOMPAREITEMSTRUCT lpCompareItemStruct)
{
   int iComp = 0;
   ASSERT(lpCompareItemStruct->CtlType == ODT_COMBOBOX);
   LPCTSTR lpszText1 = (LPCTSTR)lpCompareItemStruct->itemData1;
   ASSERT(lpszText1 != NULL);
   LPCTSTR lpszText2 = (LPCTSTR)lpCompareItemStruct->itemData2;
   ASSERT(lpszText2 != NULL);

   if (NULL != lpszText1 && NULL != lpszText2)
   {
      iComp = _tcscmp(lpszText2, lpszText1);
   }

   return iComp;
}

CComboBox:: コピーCComboBox::Copy

コンボボックスのエディットコントロール内の現在の選択項目を CF_TEXT 形式でクリップボードにコピーします。Copies the current selection, if any, in the edit control of the combo box onto the Clipboard in CF_TEXT format.

void Copy();

Example

// Copy all of the text from the combo box's edit control
// to the clipboard.
m_MyComboBox.SetEditSel(0, -1);
m_MyComboBox.Copy();

CComboBox:: CreateCComboBox::Create

コンボボックスを作成し、CComboBox オブジェクトにアタッチします。Creates the combo box and attaches it to the CComboBox object.

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

パラメーターParameters

dwStyledwStyle
コンボボックスのスタイルを指定します。Specifies the style of the combo box. コンボボックススタイルの任意の組み合わせをボックスに適用します。Apply any combination of combo-box styles to the box.

rectrect
コンボボックスの位置とサイズを指します。Points to the position and size of the combo box. には、 RECT 構造体または CRect オブジェクトを指定できます。Can be a RECT structure or a CRect object.

pParentWndpParentWnd
コンボボックスの親ウィンドウ (通常は CDialog) を指定します。Specifies the combo box's parent window (usually a CDialog). NULL にすることはできません。It must not be NULL.

nIDnID
コンボボックスのコントロール ID を指定します。Specifies the combo box's control ID.

戻り値Return Value

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。Nonzero if successful; otherwise 0.

解説Remarks

CComboBox オブジェクトを作成するには、2つの手順を実行します。You construct a CComboBox object in two steps. まず、コンストラクターを呼び出し、次に Createを呼び出します。これにより、Windows のコンボボックスが作成され、CComboBox オブジェクトにアタッチされます。First, call the constructor and then call Create, which creates the Windows combo box and attaches it to the CComboBox object.

Create 実行すると、Windows によってWM_NCCREATEWM_CREATEWM_NCCALCSIZE、およびWM_GETMINMAXINFOの各メッセージがコンボボックスに送信されます。When Create executes, Windows sends the WM_NCCREATE, WM_CREATE, WM_NCCALCSIZE, and WM_GETMINMAXINFO messages to the combo box.

これらのメッセージは、既定では CWnd 基本クラスのOnNcCreateOnCreateOnNcCalcSize、およびOnGetMinMaxInfoメンバー関数によって処理されます。These messages are handled by default by the OnNcCreate, OnCreate, OnNcCalcSize, and OnGetMinMaxInfo member functions in the CWnd base class. 既定のメッセージ処理を拡張するには、CComboBoxからクラスを派生させ、メッセージマップを新しいクラスに追加して、前のメッセージハンドラーメンバー関数をオーバーライドします。To extend the default message handling, derive a class from CComboBox, add a message map to the new class, and override the preceding message-handler member functions. たとえば、新しいクラスに必要な初期化を実行するために、OnCreateをオーバーライドします。Override OnCreate, for example, to perform needed initialization for a new class.

次のウィンドウスタイルをコンボボックスコントロールに適用します。Apply the following window styles to a combo-box control. ::

  • 常に WS_CHILDWS_CHILD Always

  • WS_VISIBLE 通常WS_VISIBLE Usually

  • WS_DISABLED はまれWS_DISABLED Rarely

  • コンボボックスのリストボックスに垂直スクロールを追加する WS_VSCROLLWS_VSCROLL To add vertical scrolling for the list box in the combo box

  • コンボボックスのリストボックスに水平スクロールを追加する WS_HSCROLLWS_HSCROLL To add horizontal scrolling for the list box in the combo box

  • グループコントロールに WS_GROUPWS_GROUP To group controls

  • コンボボックスをタブオーダーに含める WS_TABSTOPWS_TABSTOP To include the combo box in the tabbing order

Example

m_pComboBox->Create(
    WS_CHILD | WS_VISIBLE | WS_VSCROLL | CBS_DROPDOWNLIST,
    CRect(10, 10, 200, 100), pParentWnd, 1);

CComboBox:: CutCComboBox::Cut

コンボボックスエディットコントロール内の現在の選択項目を削除 (切り取り) し、削除されたテキストを CF_TEXT 形式でクリップボードにコピーします。Deletes (cuts) the current selection, if any, in the combo-box edit control and copies the deleted text onto the Clipboard in CF_TEXT format.

void Cut();

解説Remarks

削除されたテキストをクリップボードに配置せずに現在の選択項目を削除するには、 Clearメンバー関数を呼び出します。To delete the current selection without placing the deleted text onto the Clipboard, call the Clear member function.

Example

// Delete all of the text from the combo box's edit control and copy it
// to the clipboard.
m_MyComboBox.SetEditSel(0, -1);
m_MyComboBox.Cut();

CComboBox::D eleteItemCComboBox::DeleteItem

ユーザーがオーナー描画 CComboBox オブジェクトから項目を削除したとき、またはコンボボックスを破棄したときに、フレームワークによって呼び出されます。Called by the framework when the user deletes an item from an owner-draw CComboBox object or destroys the combo box.

virtual void DeleteItem(LPDELETEITEMSTRUCT lpDeleteItemStruct);

パラメーターParameters

lpDeleteItemStructlpDeleteItemStruct
削除された項目に関する情報を格納している Windows DELETEITEMSTRUCT構造体への long ポインター。A long pointer to a Windows DELETEITEMSTRUCT structure that contains information about the deleted item. この構造体の説明については、「 CWnd:: OnDeleteItem 」を参照してください。See CWnd::OnDeleteItem for a description of this structure.

解説Remarks

この関数の既定の実装は、何も行いません。The default implementation of this function does nothing. 必要に応じて、この関数をオーバーライドしてコンボボックスを再描画します。Override this function to redraw the combo box as needed.

Example

// CMyComboBox is my owner-drawn combo box derived from CComboBox. This
// example simply dumps the item's text. The combo box control was
// created with the following code:
//   pmyComboBox->Create(
//      WS_CHILD|WS_VISIBLE|WS_BORDER|WS_HSCROLL|WS_VSCROLL|
//      CBS_SORT|CBS_OWNERDRAWVARIABLE,
//      myRect, pParentWnd, 1);
//
void CMyComboBox::DeleteItem(LPDELETEITEMSTRUCT lpDeleteItemStruct)
{
   ASSERT(lpDeleteItemStruct->CtlType == ODT_COMBOBOX);
   LPTSTR lpszText = (LPTSTR)lpDeleteItemStruct->itemData;
   ASSERT(lpszText != NULL);

   AFXDUMP(lpszText);
}

CComboBox::D eleteStringCComboBox::DeleteString

コンボボックスから、[位置] の項目を削除します。Deletes the item in position nIndex from the combo box.

int DeleteString(UINT nIndex);

パラメーターParameters

nIndexnIndex
削除する文字列へのインデックスを指定します。Specifies the index to the string that is to be deleted.

戻り値Return Value

戻り値が0以上の場合は、リストに残っている文字列の数になります。If the return value is greater than or equal to 0, then it is a count of the strings remaining in the list. NIndexがリスト内の項目数より大きいインデックスを指定している場合、戻り値は CB_ERR です。The return value is CB_ERR if nIndex specifies an index greater than the number of items in the list.

解説Remarks

これで、すべての項目が1つ下に移動します。All items following nIndex now move down one position. たとえば、コンボボックスに2つの項目が含まれている場合、最初の項目を削除すると、残りの項目が最初の位置になります。For example, if a combo box contains two items, deleting the first item will cause the remaining item to now be in the first position. 1番目の位置の項目の場合は、[ nIndex] = 0 になります。nIndex=0 for the item in the first position.

Example

// Delete every item from the combo box.
for (int i = m_pComboBox->GetCount() - 1; i >= 0; i--)
{
   m_pComboBox->DeleteString(i);
}

CComboBox::D irCComboBox::Dir

ファイル名またはドライブの一覧をコンボボックスのリストボックスに追加します。Adds a list of filenames or drives to the list box of a combo box.

int Dir(
    UINT attr,
    LPCTSTR lpszWildCard);

パラメーターParameters

attrattr
には、次のように、 CFile:: GetStatusに記述されている列挙値、または次の値の任意の組み合わせを指定できます。Can be any combination of the enum values described in CFile::GetStatus or any combination of the following values:

  • DDL_READWRITE ファイルの読み取りまたは書き込みを行うことができます。DDL_READWRITE File can be read from or written to.

  • DDL_READONLY ファイルは読み取り可能ですが、に書き込むことはできません。DDL_READONLY File can be read from but not written to.

  • DDL_HIDDEN ファイルは非表示であり、ディレクトリの一覧に表示されません。DDL_HIDDEN File is hidden and does not appear in a directory listing.

  • DDL_SYSTEM ファイルはシステムファイルです。DDL_SYSTEM File is a system file.

  • Lpszwildcardによって指定された名前 DDL_DIRECTORY ディレクトリを指定します。DDL_DIRECTORY The name specified by lpszWildCard specifies a directory.

  • DDL_ARCHIVE ファイルはアーカイブされています。DDL_ARCHIVE File has been archived.

  • Lpszwildcardによって指定された名前に一致するすべてのドライブを含める DDL_DRIVES ます。DDL_DRIVES Include all drives that match the name specified by lpszWildCard.

  • 排他フラグを DDL_EXCLUSIVE します。DDL_EXCLUSIVE Exclusive flag. 排他フラグが設定されている場合は、指定された種類のファイルだけが表示されます。If the exclusive flag is set, only files of the specified type are listed. それ以外の場合は、指定された種類のファイルが "normal" ファイルに加えて一覧表示されます。Otherwise, files of the specified type are listed in addition to "normal" files.

lpszWildCardlpszWildCard
ファイル指定文字列を指します。Points to a file-specification string. 文字列には、ワイルドカード (たとえば、*.*) を含めることができます。The string can contain wildcards (for example, *.*).

戻り値Return Value

戻り値が0以上の場合は、リストに追加された最後のファイル名の0から始まるインデックスです。If the return value is greater than or equal to 0, it is the zero-based index of the last filename added to the list. エラーが発生した場合、戻り値は CB_ERR ます。新しい文字列を格納するのに十分な領域がない場合、戻り値は CB_ERRSPACE ます。The return value is CB_ERR if an error occurs; the return value is CB_ERRSPACE if insufficient space is available to store the new strings.

解説Remarks

この関数は、Windows ComboBoxEx コントロールではサポートされていません。This function is not supported by the Windows ComboBoxEx control. このコントロールの詳細については、Windows SDK の「 ComboBoxEx Controls 」を参照してください。For more information on this control, see ComboBoxEx Controls in the Windows SDK.

Example

// Add all the files and directories in the windows directory.
TCHAR lpszWinPath[MAX_PATH], lpszOldPath[MAX_PATH];
VERIFY(0 < ::GetWindowsDirectory(lpszWinPath, MAX_PATH));

// Make the windows directory the current directory.
::GetCurrentDirectory(MAX_PATH, lpszOldPath);
::SetCurrentDirectory(lpszWinPath);

m_pComboBox->ResetContent();
m_pComboBox->Dir(DDL_READWRITE | DDL_DIRECTORY, _T("*.*"));

// Reset the current directory to its previous path.
::SetCurrentDirectory(lpszOldPath);

CComboBox: rawItem:DCComboBox::DrawItem

オーナー描画コンボボックスの外観が変化したときにフレームワークによって呼び出されます。Called by the framework when a visual aspect of an owner-draw combo box changes.

virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);

パラメーターParameters

lpDrawItemStructlpDrawItemStruct
必要な描画の種類に関する情報を格納しているDRAWITEMSTRUCT構造体へのポインター。A pointer to a DRAWITEMSTRUCT structure that contains information about the type of drawing required.

解説Remarks

DRAWITEMSTRUCT 構造体の itemAction メンバーは、実行する描画アクションを定義します。The itemAction member of the DRAWITEMSTRUCT structure defines the drawing action that is to be performed. この構造体の説明については、「 CWnd:: OnDrawItem 」を参照してください。See CWnd::OnDrawItem for a description of this structure.

既定では、このメンバー関数は何も行いません。By default, this member function does nothing. オーナー描画 CComboBox オブジェクトの描画を実装するには、このメンバー関数をオーバーライドします。Override this member function to implement drawing for an owner-draw CComboBox object. このメンバー関数が終了する前に、アプリケーションは、 lpDrawItemStructで指定された表示コンテキスト用に選択されたすべてのグラフィックスデバイスインターフェイス (GDI) オブジェクトを復元する必要があります。Before this member function terminates, the application should restore all graphics device interface (GDI) objects selected for the display context supplied in lpDrawItemStruct.

Example

// CMyComboBox is my owner-drawn combo box derived from CComboBox. This
// example draws an item's text centered vertically and horizontally. The
// combo box control was created with the following code:
//   pmyComboBox->Create(
//      WS_CHILD|WS_VISIBLE|WS_BORDER|WS_HSCROLL|WS_VSCROLL|
//      CBS_SORT|CBS_OWNERDRAWVARIABLE,
//      myRect, pParentWnd, 1);
//
void CMyComboBox::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
   ASSERT(lpDrawItemStruct->CtlType == ODT_COMBOBOX);
   LPCTSTR lpszText = (LPCTSTR)lpDrawItemStruct->itemData;
   ASSERT(lpszText != NULL);
   CDC dc;

   dc.Attach(lpDrawItemStruct->hDC);

   // Save these value to restore them when done drawing.
   COLORREF crOldTextColor = dc.GetTextColor();
   COLORREF crOldBkColor = dc.GetBkColor();

   // If this item is selected, set the background color
   // and the text color to appropriate values. Erase
   // the rect by filling it with the background color.
   if ((lpDrawItemStruct->itemAction & ODA_SELECT) &&
       (lpDrawItemStruct->itemState & ODS_SELECTED))
   {
      dc.SetTextColor(::GetSysColor(COLOR_HIGHLIGHTTEXT));
      dc.SetBkColor(::GetSysColor(COLOR_HIGHLIGHT));
      dc.FillSolidRect(&lpDrawItemStruct->rcItem, ::GetSysColor(COLOR_HIGHLIGHT));
   }
   else
   {
      dc.FillSolidRect(&lpDrawItemStruct->rcItem, crOldBkColor);
   }

   // Draw the text.
   dc.DrawText(
       lpszText,
       (int)_tcslen(lpszText),
       &lpDrawItemStruct->rcItem,
       DT_CENTER | DT_SINGLELINE | DT_VCENTER);

   // Reset the background color and the text color back to their
   // original values.
   dc.SetTextColor(crOldTextColor);
   dc.SetBkColor(crOldBkColor);

   dc.Detach();
}

CComboBox:: FindStringCComboBox::FindString

コンボボックスのリストボックス内の指定したプレフィックスを含む最初の文字列を検索します (選択しません)。Finds, but doesn't select, the first string that contains the specified prefix in the list box of a combo box.

int FindString(
    int nStartAfter,
    LPCTSTR lpszString) const;

パラメーターParameters

nStartAfternStartAfter
最初に検索される項目の前にある項目の0から始まるインデックスを格納します。Contains the zero-based index of the item before the first item to be searched. 検索がリストボックスの下部に到達すると、リストボックスの一番上からNstartafterによって指定された項目に戻ります。When the search reaches the bottom of the list box, it continues from the top of the list box back to the item specified by nStartAfter. -1 の場合、リストボックス全体が最初から検索されます。If -1, the entire list box is searched from the beginning.

lpszStringlpszString
検索するプレフィックスを含む、null で終わる文字列を指します。Points to the null-terminated string that contains the prefix to search for. 検索は大文字と小文字が区別されないため、この文字列には大文字と小文字の任意の組み合わせを含めることができます。The search is case independent, so this string can contain any combination of uppercase and lowercase letters.

戻り値Return Value

戻り値が0以上の場合は、一致する項目の0から始まるインデックスです。If the return value is greater than or equal to 0, it is the zero-based index of the matching item. 検索に失敗した場合は CB_ERR です。It is CB_ERR if the search was unsuccessful.

解説Remarks

この関数は、Windows ComboBoxEx コントロールではサポートされていません。This function is not supported by the Windows ComboBoxEx control. このコントロールの詳細については、Windows SDK の「 ComboBoxEx Controls 」を参照してください。For more information on this control, see ComboBoxEx Controls in the Windows SDK.

Example

// The string to match.
LPCTSTR lpszmyString = _T("item");

// Delete all items that begin with the specified string.
int nItem = 0;
while ((nItem = m_pComboBox->FindString(nItem, lpszmyString)) != CB_ERR)
{
   m_pComboBox->DeleteString(nItem);
}

CComboBox:: FindStringExactCComboBox::FindStringExact

FindStringExact メンバー関数を呼び出して、 lpszFindで指定した文字列と一致する最初のリストボックスの文字列 (コンボボックス内) を検索します。Call the FindStringExact member function to find the first list-box string (in a combo box) that matches the string specified in lpszFind.

int FindStringExact(
    int nIndexStart,
    LPCTSTR lpszFind) const;

パラメーターParameters

nIndexStartnIndexStart
最初に検索する項目の前にある項目の0から始まるインデックスを指定します。Specifies the zero-based index of the item before the first item to be searched. 検索がリストボックスの下部に到達すると、リストボックスの一番上から、 Nindexstartによって指定された項目に戻ります。When the search reaches the bottom of the list box, it continues from the top of the list box back to the item specified by nIndexStart. Nindexstartが-1 の場合、リストボックス全体が最初から検索されます。If nIndexStart is -1, the entire list box is searched from the beginning.

lpszFindlpszFind
Null で終わる検索対象の文字列を指します。Points to the null-terminated string to search for. この文字列には、拡張子を含む完全なファイル名を含めることができます。This string can contain a complete filename, including the extension. 検索では大文字と小文字が区別されないため、この文字列には大文字と小文字の任意の組み合わせを含めることができます。The search is not case sensitive, so this string can contain any combination of uppercase and lowercase letters.

戻り値Return Value

一致する項目の0から始まるインデックス番号。検索に失敗した場合は CB_ERR。The zero-based index of the matching item, or CB_ERR if the search was unsuccessful.

解説Remarks

コンボボックスがオーナー描画スタイルを使用して作成され、 CBS_HASSTRINGSスタイルが指定されていない場合、FindStringExact は、ダブルワード値とlpszFindの値との一致を試みます。If the combo box was created with an owner-draw style but without the CBS_HASSTRINGS style, FindStringExact attempts to match the doubleword value against the value of lpszFind.

Example

// The string to match.
LPCTSTR lpszmyExactString = _T("item 5");

// Delete all items that exactly match the specified string.
int nDex = 0;
while ((nDex = m_pComboBox->FindStringExact(nDex, lpszmyExactString)) != CB_ERR)
{
   m_pComboBox->DeleteString(nDex);
}

CComboBox:: GetComboBoxInfoCComboBox::GetComboBoxInfo

CComboBox オブジェクトの情報を取得します。Retrieves information for the CComboBox object.

BOOL GetComboBoxInfo(PCOMBOBOXINFO pcbi) const;

パラメーターParameters

pcbipcbi
COMBOBOXINFO構造体へのポインター。A pointer to the COMBOBOXINFO structure.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

解説Remarks

このメンバー関数は、Windows SDK で説明されているように、 CB_GETCOMBOBOXINFOメッセージの機能をエミュレートします。This member function emulates the functionality of the CB_GETCOMBOBOXINFO message, as described in the Windows SDK.

CComboBox:: GetCountCComboBox::GetCount

コンボボックスのリストボックスの部分に含まれる項目の数を取得するには、このメンバー関数を呼び出します。Call this member function to retrieve the number of items in the list-box portion of a combo box.

int GetCount() const;

戻り値Return Value

項目の数The number of items. 返されるカウントは、最後の項目のインデックス値よりも1だけ大きくなります (インデックスは0から始まります)。The returned count is one greater than the index value of the last item (the index is zero-based). これは、エラーが発生した場合に CB_ERR ます。It is CB_ERR if an error occurs.

Example

// Add 10 items to the combo box.
CString strItem;
for (int i = 0; i < 10; i++)
{
   strItem.Format(_T("item %d"), i);
   m_pComboBox->AddString(strItem);
}

// Verify the 10 items were added to the combo box.
ASSERT(m_pComboBox->GetCount() == 10);

CComboBox:: GetCueBannerCComboBox::GetCueBanner

コンボボックスコントロールに表示されるキューテキストを取得します。Gets the cue text that is displayed for a combo box control.

CString GetCueBanner() const;

BOOL GetCueBanner(
    LPTSTR lpszText,
    int cchText) const;

パラメーターParameters

パラメーターParameter DescriptionDescription
lpszTextlpszText 入出力キューバナーテキストを受け取るバッファーへのポインター。[out] Pointer to a buffer that receives the cue banner text.
cchTextcchText からLpszTextパラメーターが指すバッファーのサイズ。[in] Size of the buffer that the lpszText parameter points to.

戻り値Return Value

最初のオーバーロードでは、存在する場合は、キューバナーテキストを含むCStringオブジェクト。それ以外の場合は、長さが0の CString オブジェクト。In the first overload, a CString object that contains the cue banner text if it exists; otherwise, a CString object that has zero length.

または-or-

2番目のオーバーロードでは、このメソッドが成功した場合は TRUE になります。それ以外の場合は FALSE。In the second overload, TRUE if this method is successful; otherwise, FALSE.

解説Remarks

キューテキストは、コンボボックスコントロールの入力領域に表示されるプロンプトです。Cue text is a prompt that is displayed in the input area of the combo box control. ユーザーが入力を提供するまで、キューのテキストが表示されます。The cue text is displayed until the user provides input.

このメソッドは、Windows SDK で説明されているCB_GETCUEBANNERメッセージを送信します。This method sends the CB_GETCUEBANNER message, which is described in the Windows SDK.

CComboBox:: GetCurSelCComboBox::GetCurSel

コンボボックス内のどの項目が選択されているかを判断するには、このメンバー関数を呼び出します。Call this member function to determine which item in the combo box is selected.

int GetCurSel() const;

戻り値Return Value

コンボボックスのリストボックス内で現在選択されている項目の0から始まるインデックス番号。項目が選択されていない場合は CB_ERR。The zero-based index of the currently selected item in the list box of a combo box, or CB_ERR if no item is selected.

解説Remarks

GetCurSel は、一覧にインデックスを返します。GetCurSel returns an index into the list.

Example

// Select the next item of the currently selected item
// in the combo box.
int nIndex = m_pComboBox->GetCurSel();
int nCount = m_pComboBox->GetCount();
if ((nIndex != CB_ERR) && (nCount > 1))
{
   if (++nIndex < nCount)
      m_pComboBox->SetCurSel(nIndex);
   else
      m_pComboBox->SetCurSel(0);
}

CComboBox:: GetDroppedControlRectCComboBox::GetDroppedControlRect

GetDroppedControlRect メンバー関数を呼び出して、ドロップダウンコンボボックスの表示 (ドロップダウン) リストボックスの画面座標を取得します。Call the GetDroppedControlRect member function to retrieve the screen coordinates of the visible (dropped-down) list box of a drop-down combo box.

void GetDroppedControlRect(LPRECT lprect) const;

パラメーターParameters

lprectlprect
座標を受け取るRECT 構造体をポイントします。Points to the RECT structure that is to receive the coordinates.

Example

// This example move a combo box so that the upper left
// corner of the combo box is at a specific point.

// The point to move the combo box to.
CPoint myPoint(30, 10);

CRect r;

m_pComboBox->GetDroppedControlRect(&r);

m_pComboBox->GetParent()->ScreenToClient(&r);
r.OffsetRect(myPoint - r.TopLeft());
m_pComboBox->MoveWindow(&r);

CComboBox:: GetDroppedStateCComboBox::GetDroppedState

GetDroppedState メンバー関数を呼び出して、ドロップダウンコンボボックスのリストボックスが表示されている (ドロップダウンされている) かどうかを判断します。Call the GetDroppedState member function to determine whether the list box of a drop-down combo box is visible (dropped down).

BOOL GetDroppedState() const;

戻り値Return Value

リストボックスが表示されている場合は0以外の。それ以外の場合は0です。Nonzero if the list box is visible; otherwise 0.

Example

// Show the dropdown list box if it is not already dropped.
if (!m_pComboBox->GetDroppedState())
   m_pComboBox->ShowDropDown(TRUE);

CComboBox:: GetDroppedWidthCComboBox::GetDroppedWidth

コンボボックスのリストボックスの最小許容幅 (ピクセル単位) を取得するには、この関数を呼び出します。Call this function to retrieve the minimum allowable width, in pixels, of the list box of a combo box.

int GetDroppedWidth() const;

戻り値Return Value

成功した場合、許容される最小の幅 (ピクセル単位)。それ以外の場合は、CB_ERR ます。If successful, the minimum allowable width, in pixels; otherwise, CB_ERR.

解説Remarks

この関数は、 CBS_DROPDOWNまたはCBS_DROPDOWNLISTスタイルを持つコンボボックスにのみ適用されます。This function only applies to combo boxes with the CBS_DROPDOWN or CBS_DROPDOWNLIST style.

既定では、ドロップダウンリストボックスで許容される最小幅は0です。By default, the minimum allowable width of the drop-down list box is 0. 許容される最小幅は、 SetDroppedWidthを呼び出すことによって設定できます。The minimum allowable width can be set by calling SetDroppedWidth. コンボボックスのリストボックスの部分が表示されている場合、その幅は、許容される最小幅またはコンボボックスの幅のうち、大きい方になります。When the list-box portion of the combo box is displayed, its width is the larger of the minimum allowable width or the combo box width.

Example

SetDroppedWidthの例を参照してください。See the example for SetDroppedWidth.

CComboBox:: GetEditSelCComboBox::GetEditSel

コンボボックスの編集コントロールの現在の選択範囲の開始文字と終了文字の位置を取得します。Gets the starting and ending character positions of the current selection in the edit control of a combo box.

DWORD GetEditSel() const;

戻り値Return Value

下位ワードの開始位置、および上位ワードの選択範囲の終了後の最初の非表示文字の位置を格納する32ビットの値です。A 32-bit value that contains the starting position in the low-order word and the position of the first nonselected character after the end of the selection in the high-order word. この関数がエディットコントロールのないコンボボックスで使用されている場合は CB_ERR が返されます。If this function is used on a combo box without an edit control, CB_ERR is returned.

Example

DWORD dwSel;

// Set the selection to be all characters after the current selection.
if ((dwSel = m_MyComboBox.GetEditSel()) != CB_ERR)
{
   m_MyComboBox.SetEditSel(HIWORD(dwSel), -1);
}

CComboBox:: GetExtendedUICComboBox::GetExtendedUI

GetExtendedUI メンバー関数を呼び出して、コンボボックスに既定のユーザーインターフェイスまたは拡張ユーザーインターフェイスがあるかどうかを判断します。Call the GetExtendedUI member function to determine whether a combo box has the default user interface or the extended user interface.

BOOL GetExtendedUI() const;

戻り値Return Value

コンボボックスに拡張ユーザーインターフェイスがある場合は0以外の。それ以外の場合は0です。Nonzero if the combo box has the extended user interface; otherwise 0.

解説Remarks

拡張ユーザーインターフェイスは、次の方法で識別できます。The extended user interface can be identified in the following ways:

  • スタティックコントロールをクリックすると、 CBS_DROPDOWNLISTスタイルのコンボボックスに対してのみリストボックスが表示されます。Clicking the static control displays the list box only for combo boxes with the CBS_DROPDOWNLIST style.

  • 下方向キーを押すと、リストボックスが表示されます (F4 は無効になります)。Pressing the DOWN ARROW key displays the list box (F4 is disabled).

項目リストが表示されていない場合、静的コントロールのスクロールは無効になります (方向キーは無効になります)。Scrolling in the static control is disabled when the item list is not visible (arrow keys are disabled).

Example

// Use the extended UI if it is not already set.
if (!m_pComboBox->GetExtendedUI())
   m_pComboBox->SetExtendedUI(TRUE);

CComboBox:: GetHorizontalExtentCComboBox::GetHorizontalExtent

コンボボックスから、コンボボックスのリストボックスの部分を水平方向にスクロールできる幅 (ピクセル単位) を取得します。Retrieves from the combo box the width in pixels by which the list-box portion of the combo box can be scrolled horizontally.

UINT GetHorizontalExtent() const;

戻り値Return Value

コンボボックスのリストボックスの部分のスクロール可能な幅 (ピクセル単位)。The scrollable width of the list-box portion of the combo box, in pixels.

解説Remarks

これは、コンボボックスのリストボックスの部分に水平スクロールバーがある場合にのみ適用されます。This is applicable only if the list-box portion of the combo box has a horizontal scroll bar.

Example

// Find the longest string in the combo box.
CString strText;
CSize sz;
UINT dxText = 0;
CDC *pDCCombo = m_pComboBox->GetDC();
for (int i = 0; i < m_pComboBox->GetCount(); i++)
{
   m_pComboBox->GetLBText(i, strText);
   sz = pDCCombo->GetTextExtent(strText);

   if (sz.cx > (LONG)dxText)
      dxText = sz.cx;
}
m_pComboBox->ReleaseDC(pDCCombo);

// Set the horizontal extent only if the current extent is not large enough.
if (m_pComboBox->GetHorizontalExtent() < dxText)
{
   m_pComboBox->SetHorizontalExtent(dxText);
   ASSERT(m_pComboBox->GetHorizontalExtent() == dxText);
}

CComboBox:: GetItemDataCComboBox::GetItemData

指定したコンボボックス項目に関連付けられている、アプリケーションが提供した32ビット値を取得します。Retrieves the application-supplied 32-bit value associated with the specified combo-box item.

DWORD_PTR GetItemData(int nIndex) const;

パラメーターParameters

nIndexnIndex
コンボボックスのリストボックス内の項目の0から始まるインデックスを格納します。Contains the zero-based index of an item in the combo box's list box.

戻り値Return Value

項目に関連付けられている32ビット値。エラーが発生した場合は CB_ERR。The 32-bit value associated with the item, or CB_ERR if an error occurs.

解説Remarks

32ビット値は、 SetItemDataメンバー関数呼び出しのdwItemDataパラメーターを使用して設定できます。The 32-bit value can be set with the dwItemData parameter of a SetItemData member function call. 取得する32ビット値がポインター (void *) の場合は、GetItemDataPtr メンバー関数を使用します。Use the GetItemDataPtr member function if the 32-bit value to be retrieved is a pointer (void *).

Example

// If any item's data is equal to zero then reset it to -1.
for (int i = 0; i < m_pComboBox->GetCount(); i++)
{
   if (m_pComboBox->GetItemData(i) == 0)
   {
      m_pComboBox->SetItemData(i, (DWORD)-1);
   }
}

CComboBox:: GetItemDataPtrCComboBox::GetItemDataPtr

指定したコンボボックス項目に関連付けられた、アプリケーションが提供した32ビット値をポインターとして取得します (void *)。Retrieves the application-supplied 32-bit value associated with the specified combo-box item as a pointer (void *).

void* GetItemDataPtr(int nIndex) const;

パラメーターParameters

nIndexnIndex
コンボボックスのリストボックス内の項目の0から始まるインデックスを格納します。Contains the zero-based index of an item in the combo box's list box.

戻り値Return Value

ポインターを取得します。エラーが発生した場合は-1 を取得します。Retrieves a pointer, or -1 if an error occurs.

Example

LPVOID lpmyPtr = m_pComboBox->GetItemDataPtr(5);

// Check all the items in the combo box; if an item's
// data pointer is equal to my pointer then reset it to NULL.
for (int i = 0; i < m_pComboBox->GetCount(); i++)
{
   if (m_pComboBox->GetItemDataPtr(i) == lpmyPtr)
   {
      m_pComboBox->SetItemDataPtr(i, NULL);
   }
}

CComboBox:: GetItemHeightCComboBox::GetItemHeight

GetItemHeight メンバー関数を呼び出して、コンボボックス内のリスト項目の高さを取得します。Call the GetItemHeight member function to retrieve the height of list items in a combo box.

int GetItemHeight(int nIndex) const;

パラメーターParameters

nIndexnIndex
高さを取得するコンボボックスのコンポーネントを指定します。Specifies the component of the combo box whose height is to be retrieved. NIndexパラメーターが-1 の場合、コンボボックスの編集コントロール (または静的テキスト) 部分の高さが取得されます。If the nIndex parameter is -1, the height of the edit-control (or static-text) portion of the combo box is retrieved. コンボボックスにCBS_OWNERDRAWVARIABLEスタイルが設定されている場合、 nIndexは、高さを取得するリスト項目の0から始まるインデックスを指定します。If the combo box has the CBS_OWNERDRAWVARIABLE style, nIndex specifies the zero-based index of the list item whose height is to be retrieved. それ以外の場合は、 nIndexを0に設定する必要があります。Otherwise, nIndex should be set to 0.

戻り値Return Value

コンボボックス内の指定した項目の高さ (ピクセル単位)。The height, in pixels, of the specified item in a combo box. エラーが発生した場合は、戻り値は CB_ERR です。The return value is CB_ERR if an error occurs.

Example

// Set the height of every item so the item
// is completely visible.
CString strLBText;
CSize size;
CDC *pDC = m_pComboBox->GetDC();
for (int i = 0; i < m_pComboBox->GetCount(); i++)
{
   m_pComboBox->GetLBText(i, strLBText);
   size = pDC->GetTextExtent(strLBText);

   // Only want to set the item height if the current height
   // is not big enough.
   if (m_pComboBox->GetItemHeight(i) < size.cy)
      m_pComboBox->SetItemHeight(i, size.cy);
}
m_pComboBox->ReleaseDC(pDC);

CComboBox:: GetLBTextCComboBox::GetLBText

コンボボックスのリストボックスから文字列を取得します。Gets a string from the list box of a combo box.

int GetLBText(
    int nIndex,
    LPTSTR lpszText) const;

void GetLBText(
    int nIndex,
    CString& rString) const;

パラメーターParameters

nIndexnIndex
コピーするリストボックス文字列の0から始まるインデックスを格納します。Contains the zero-based index of the list-box string to be copied.

lpszTextlpszText
は、文字列を受け取るバッファーを指します。Points to a buffer that is to receive the string. バッファーには、文字列と終端の null 文字に十分な領域が必要です。The buffer must have sufficient space for the string and a terminating null character.

rStringrString
CString への参照です。A reference to a CString.

戻り値Return Value

文字列の長さ (バイト単位)。終端の null 文字は除外されます。The length (in bytes) of the string, excluding the terminating null character. NIndexで有効なインデックスが指定されていない場合、戻り値は CB_ERR になります。If nIndex does not specify a valid index, the return value is CB_ERR.

解説Remarks

このメンバー関数の2番目の形式は、CString オブジェクトに項目のテキストを格納します。The second form of this member function fills a CString object with the item's text.

Example

// Dump all of the items in the combo box.
CString str1, str2;
int n;
for (int i = 0; i < m_pComboBox->GetCount(); i++)
{
   n = m_pComboBox->GetLBTextLen(i);
   m_pComboBox->GetLBText(i, str1.GetBuffer(n));
   str1.ReleaseBuffer();

   str2.Format(_T("item %d: %s\r\n"), i, str1.GetBuffer(0));
   AFXDUMP(str2);
}

CComboBox:: GetLBTextLenCComboBox::GetLBTextLen

コンボボックスのリストボックス内の文字列の長さを取得します。Gets the length of a string in the list box of a combo box.

int GetLBTextLen(int nIndex) const;

パラメーターParameters

nIndexnIndex
リストボックスの文字列の0から始まるインデックスを格納します。Contains the zero-based index of the list-box string.

戻り値Return Value

文字列の長さ (バイト単位) (終端の null 文字は除く)。The length of the string in bytes, excluding the terminating null character. NIndexで有効なインデックスが指定されていない場合、戻り値は CB_ERR になります。If nIndex does not specify a valid index, the return value is CB_ERR.

Example

CComboBox:: GetLBText」の例を参照してください。See the example for CComboBox::GetLBText.

CComboBox:: GetLocaleCComboBox::GetLocale

コンボボックスによって使用されるロケールを取得します。Retrieves the locale used by the combo box.

LCID GetLocale() const;

戻り値Return Value

コンボボックス内の文字列のロケール識別子 (LCID) 値。The locale identifier (LCID) value for the strings in the combo box.

解説Remarks

たとえば、ロケールは、並べ替えられたコンボボックス内の文字列の並べ替え順序を決定するために使用されます。The locale is used, for example, to determine the sort order of the strings in a sorted combo box.

Example

CComboBox:: SetLocale」の例を参照してください。See the example for CComboBox::SetLocale.

CComboBox:: GetMinVisibleCComboBox::GetMinVisible

現在のコンボボックスコントロールのドロップダウンリストに表示される項目の最小数を取得します。Gets the minimum number of visible items in the drop-down list of the current combo box control.

int GetMinVisible() const;

戻り値Return Value

現在のドロップダウンリストに表示される項目の最小数。The minimum number of visible items in the current drop-down list.

解説Remarks

このメソッドは、Windows SDK で説明されているCB_GETMINVISIBLEメッセージを送信します。This method sends the CB_GETMINVISIBLE message, which is described in the Windows SDK.

CComboBox:: GetTopIndexCComboBox::GetTopIndex

コンボボックスのリストボックスの部分に表示されている最初の項目の0から始まるインデックスを取得します。Retrieves the zero-based index of the first visible item in the list-box portion of the combo box.

int GetTopIndex() const;

戻り値Return Value

成功した場合は、コンボボックスのリストボックスの部分に表示されている最初の項目の0から始まるインデックス。それ以外の場合は CB_ERR。The zero-based index of the first visible item in the list-box portion of the combo box if successful, CB_ERR otherwise.

解説Remarks

最初は、項目0がリストボックスの一番上にありますが、リストボックスがスクロールされている場合は、別の項目が一番上に表示されます。Initially, item 0 is at the top of the list box, but if the list box is scrolled, another item may be at the top.

Example

// Want an item in the bottom half to be the first visible item.
int nTop = m_pComboBox->GetCount() / 2;
if (m_pComboBox->GetTopIndex() < nTop)
{
   m_pComboBox->SetTopIndex(nTop);
   ASSERT(m_pComboBox->GetTopIndex() == nTop);
}

CComboBox:: InitStorageCComboBox::InitStorage

コンボボックスのリストボックスの部分にリストボックス項目を格納するためのメモリを割り当てます。Allocates memory for storing list box items in the list-box portion of the combo box.

int InitStorage(
    int nItems,
    UINT nBytes);

パラメーターParameters

n 項目nItems
追加する項目の数を指定します。Specifies the number of items to add.

nBytesnBytes
項目文字列に割り当てるメモリの量をバイト単位で指定します。Specifies the amount of memory, in bytes, to allocate for item strings.

戻り値Return Value

成功した場合は、メモリの再割り当てが必要になる前にコンボボックスのリストボックスの部分で格納できる項目の最大数。それ以外の場合は CB_ERRSPACE、十分なメモリが使用できないことを意味します。If successful, the maximum number of items that the list-box portion of the combo box can store before a memory reallocation is needed, otherwise CB_ERRSPACE, meaning not enough memory is available.

解説Remarks

CComboBoxのリストボックスの部分に多数の項目を追加する前に、この関数を呼び出します。Call this function before adding a large number of items to the list-box portion of the CComboBox.

Windows 95/98 のみ: wParamパラメーターは16ビット値に制限されます。Windows 95/98 only: The wParam parameter is limited to 16-bit values. これは、リストボックスに32767を超える項目を含めることができないことを意味します。This means list boxes cannot contain more than 32,767 items. 項目の数は制限されていますが、リストボックス内の項目の合計サイズは、使用可能なメモリによってのみ制限されます。Although the number of items is restricted, the total size of the items in a list box is limited only by available memory.

この関数は、多数の項目 (100 を超える) を持つリストボックスの初期化を高速化するのに役立ちます。This function helps speed up the initialization of list boxes that have a large number of items (more than 100). 事前は、指定された量のメモリを使用して、後続のAddstringinsertstring、およびDir関数が可能な限り最短の時間を取るようにします。It preallocates the specified amount of memory so that subsequent AddString, InsertString, and Dir functions take the shortest possible time. パラメーターには、推定値を使用できます。You can use estimates for the parameters. 過大評価を使用すると、いくつかの追加メモリが割り当てられます。過小評価を行う場合、通常の割り当ては、事前に割り当てられた量を超える項目に使用されます。If you overestimate, some extra memory is allocated; if you underestimate, the normal allocation is used for items that exceed the preallocated amount.

Example

// Initialize the storage of the combo box to be 256 strings with
// about 10 characters per string, performance improvement.
int nAlloc = pmyComboBox->InitStorage(256, 10);
ASSERT(nAlloc != CB_ERRSPACE);

// Add 256 items to the combo box.
CString strAdd;
for (int i = 0; i < 256; i++)
{
   strAdd.Format(_T("item string %d"), i);
   m_pComboBox->AddString(strAdd);
}

CComboBox:: InsertStringCComboBox::InsertString

コンボ ボックスのリスト ボックスに文字列を挿入します。Inserts a string into the list box of a combo box.

int InsertString(
    int nIndex,
    LPCTSTR lpszString);

パラメーターParameters

nIndexnIndex
文字列を受け取るリスト ボックス内の位置を示す 0 から始まるインデックスです。Contains the zero-based index to the position in the list box that will receive the string. このパラメーターが-1 の場合、文字列はリストの末尾に追加されます。If this parameter is -1, the string is added to the end of the list.

lpszStringlpszString
挿入される null で終わる文字列を指します。Points to the null-terminated string that is to be inserted.

戻り値Return Value

文字列が挿入された位置の 0 から始まるインデックス。The zero-based index of the position at which the string was inserted. エラーが発生した場合は、戻り値は CB_ERR です。The return value is CB_ERR if an error occurs. 新しい文字列を保存する空き領域が不足している場合は、戻り値は CB_ERRSPACE です。The return value is CB_ERRSPACE if insufficient space is available to store the new string.

解説Remarks

AddString メンバー関数とは異なり、 InsertString メンバー関数では、 CBS_SORT スタイルのリストが並べ替えられることはありません。Unlike the AddString member function, the InsertString member function does not cause a list with the CBS_SORT style to be sorted.

注意

この関数は、Windows ComboBoxEx コントロールではサポートされていません。This function is not supported by the Windows ComboBoxEx control. このコントロールの詳細については、Windows SDK の「 ComboBoxEx Controls 」を参照してください。For more information on this control, see ComboBoxEx Controls in the Windows SDK.

Example

// Insert items in between existing items.
CString strIns;
int nItems = m_pComboBox->GetCount();
for (int i = 0; i < nItems; i++)
{
   strIns.Format(_T("item string %c"), (char)('A' + i));
   m_pComboBox->InsertString(2 * i, strIns);
}

CComboBox:: LimitTextCComboBox::LimitText

ユーザーがコンボボックスのエディットコントロールに入力できるテキストの長さをバイト単位で制限します。Limits the length in bytes of the text that the user can enter into the edit control of a combo box.

BOOL LimitText(int nMaxChars);

パラメーターParameters

nMaxCharsnMaxChars
ユーザーが入力できるテキストの長さ (バイト単位) を指定します。Specifies the length (in bytes) of the text that the user can enter. このパラメーターが0の場合、テキストの長さは65535バイトに設定されます。If this parameter is 0, the text length is set to 65,535 bytes.

戻り値Return Value

成功した場合は0以外の。Nonzero if successful. スタイルCBS_DROPDOWNLISTを持つコンボボックスまたはエディットコントロールのないコンボボックスに対して呼び出された場合、戻り値は CB_ERR です。If called for a combo box with the style CBS_DROPDOWNLIST or for a combo box without an edit control, the return value is CB_ERR.

解説Remarks

コンボボックスにスタイルCBS_AUTOHSCROLLが指定されていない場合、テキスト制限を編集コントロールのサイズより大きく設定しても効果はありません。If the combo box does not have the style CBS_AUTOHSCROLL, setting the text limit to be larger than the size of the edit control will have no effect.

LimitText は、ユーザーが入力できるテキストのみを制限します。LimitText only limits the text the user can enter. このメソッドは、メッセージの送信時にエディットコントロールに既に存在するテキストには影響しません。また、リストボックス内の文字列が選択されている場合は、エディットコントロールにコピーされるテキストの長さにも影響しません。It has no effect on any text already in the edit control when the message is sent, nor does it affect the length of the text copied to the edit control when a string in the list box is selected.

Example

// Limit the number of characters in the combo box's edit control to
// be the maximum number visible.

// Get the text metrics for the combo box; needed for the
// average character width.
TEXTMETRIC tm;
CDC *pDCCB = m_pComboBox->GetDC();
pDCCB->GetTextMetrics(&tm);
m_pComboBox->ReleaseDC(pDCCB);

CRect rect;
m_pComboBox->GetClientRect(&rect);

m_pComboBox->LimitText(rect.Width() / tm.tmAveCharWidth);

CComboBox:: MeasureItemCComboBox::MeasureItem

オーナー描画スタイルを持つコンボボックスが作成されたときに、フレームワークによって呼び出されます。Called by the framework when a combo box with an owner-draw style is created.

virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);

パラメーターParameters

lpMeasureItemStructlpMeasureItemStruct
MEASUREITEMSTRUCT構造体への long ポインター。A long pointer to a MEASUREITEMSTRUCT structure.

解説Remarks

既定では、このメンバー関数は何も行いません。By default, this member function does nothing. このメンバー関数をオーバーライドし、MEASUREITEMSTRUCT 構造体を入力して、コンボボックスのリストボックスのサイズをウィンドウに通知します。Override this member function and fill in the MEASUREITEMSTRUCT structure to inform Windows of the dimensions of the list box in the combo box. CBS_OWNERDRAWVARIABLEスタイルを使用してコンボボックスを作成した場合、フレームワークはリストボックスの各項目に対してこのメンバー関数を呼び出します。If the combo box is created with the CBS_OWNERDRAWVARIABLE style, the framework calls this member function for each item in the list box. それ以外の場合、このメンバーは1回だけ呼び出されます。Otherwise, this member is called only once.

CWndSubclassDlgItemメンバー関数で作成されたオーナー描画コンボボックスで CBS_OWNERDRAWFIXED スタイルを使用するには、さらにプログラミングに関する考慮事項が必要です。Using the CBS_OWNERDRAWFIXED style in an owner-draw combo box created with the SubclassDlgItem member function of CWnd involves further programming considerations. テクニカルノート 14の説明を参照してください。See the discussion in Technical Note 14.

MEASUREITEMSTRUCT 構造の説明については、「 CWnd:: OnMeasureItem 」を参照してください。See CWnd::OnMeasureItem for a description of the MEASUREITEMSTRUCT structure.

Example

// CMyComboBox is my owner-drawn combo box derived from CComboBox. This
// example measures an item and sets the height of the item to twice the
// vertical extent of its text. The combo box control was created with
// the following code:
//   pmyComboBox->Create(
//      WS_CHILD|WS_VISIBLE|WS_BORDER|WS_HSCROLL|WS_VSCROLL|
//      CBS_SORT|CBS_OWNERDRAWVARIABLE,
//      myRect, pParentWnd, 1);
//
void CMyComboBox::MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct)
{
   ASSERT(lpMeasureItemStruct->CtlType == ODT_COMBOBOX);

   if (lpMeasureItemStruct->itemID != (UINT)-1)
   {
      LPCTSTR lpszText = (LPCTSTR)lpMeasureItemStruct->itemData;
      ASSERT(lpszText != NULL);
      CSize sz;
      CDC *pDC = GetDC();

      sz = pDC->GetTextExtent(lpszText);

      ReleaseDC(pDC);

      lpMeasureItemStruct->itemHeight = 2 * sz.cy;
   }
}

CComboBox::P asteCComboBox::Paste

クリップボードのデータを、現在のカーソル位置にあるコンボボックスの編集コントロールに挿入します。Inserts the data from the Clipboard into the edit control of the combo box at the current cursor position.

void Paste();

解説Remarks

クリップボードに CF_TEXT 形式のデータが含まれている場合にのみ、データが挿入されます。Data is inserted only if the Clipboard contains data in CF_TEXT format.

Example

// Replace all of the text in the combo box's edit control with the text
// in the clipboard.
m_MyComboBox.SetEditSel(0, -1);
m_MyComboBox.Paste();

CComboBox:: ResetContentCComboBox::ResetContent

リストボックスからすべての項目を削除し、コンボボックスのコントロールを編集します。Removes all items from the list box and edit control of a combo box.

void ResetContent();

Example

// Delete all the items from the combo box.
m_pComboBox->ResetContent();
ASSERT(m_pComboBox->GetCount() == 0);

CComboBox:: SelectStringCComboBox::SelectString

コンボボックスのリストボックス内の文字列を検索し、その文字列が見つかった場合は、リストボックス内の文字列を選択して、編集コントロールにコピーします。Searches for a string in the list box of a combo box, and if the string is found, selects the string in the list box and copies it to the edit control.

int SelectString(
    int nStartAfter,
    LPCTSTR lpszString);

パラメーターParameters

nStartAfternStartAfter
最初に検索される項目の前にある項目の0から始まるインデックスを格納します。Contains the zero-based index of the item before the first item to be searched. 検索がリストボックスの下部に到達すると、リストボックスの一番上からNstartafterによって指定された項目に戻ります。When the search reaches the bottom of the list box, it continues from the top of the list box back to the item specified by nStartAfter. -1 の場合、リストボックス全体が最初から検索されます。If -1, the entire list box is searched from the beginning.

lpszStringlpszString
検索するプレフィックスを含む、null で終わる文字列を指します。Points to the null-terminated string that contains the prefix to search for. 検索は大文字と小文字が区別されないため、この文字列には大文字と小文字の任意の組み合わせを含めることができます。The search is case independent, so this string can contain any combination of uppercase and lowercase letters.

戻り値Return Value

文字列が見つかった場合は、選択された項目の0から始まるインデックス。The zero-based index of the selected item if the string was found. 検索に失敗した場合、戻り値は CB_ERR、現在の選択内容は変更されません。If the search was unsuccessful, the return value is CB_ERR and the current selection is not changed.

解説Remarks

文字列が選択されるのは、最初の文字 (開始点から) がプレフィックス文字列内の文字と一致する場合のみです。A string is selected only if its initial characters (from the starting point) match the characters in the prefix string.

SelectStringFindString のメンバー関数はどちらも文字列を検索しますが、SelectString メンバー関数も文字列を選択します。Note that the SelectString and FindString member functions both find a string, but the SelectString member function also selects the string.

Example

// The string to match.
LPCTSTR lpszSelect = _T("item");

// Select the item that begins with the specified string.
int nSel = m_pComboBox->SelectString(0, lpszSelect);
ASSERT(nSel != CB_ERR);

CComboBox:: SetCueBannerCComboBox::SetCueBanner

コンボボックスコントロールに表示されるキューテキストを設定します。Sets the cue text that is displayed for a combo box control.

BOOL SetCueBanner(LPCTSTR lpszText);

パラメーターParameters

パラメーターParameter DescriptionDescription
lpszTextlpszText からキューテキストを格納している null で終わるバッファーへのポインター。[in] Pointer to a null-terminated buffer that contains the cue text.

戻り値Return Value

メソッドが成功した場合は TRUE。それ以外の場合は FALSE。TRUE if the method is successful; otherwise, FALSE.

解説Remarks

キューテキストは、コンボボックスコントロールの入力領域に表示されるプロンプトです。Cue text is a prompt that is displayed in the input area of the combo box control. ユーザーが入力を提供するまで、キューのテキストが表示されます。The cue text is displayed until the user provides input.

このメソッドは、Windows SDK で説明されているCB_SETCUEBANNERメッセージを送信します。This method sends the CB_SETCUEBANNER message, which is described in the Windows SDK.

Example

次のコード例では、コンボボックスコントロールにプログラムでアクセスするために使用される、 m_combobox変数を定義します。The following code example defines the variable, m_combobox, that is used to programmatically access the combo box control. この変数は次の例で使用されています。This variable is used in the next example.

// Variable to access the combo box control
CComboBox m_combobox;

Example

次のコード例では、コンボボックスコントロールのキューバナーを設定します。The following code example sets the cue banner for the combo box control.

// Add extra initialization here.

// Add 20 items to the combo box. The Resource Editor
// has already been used to set the style of the combo
// box to CBS_SORT.
CString str;
for (int i = 1; i <= 20; i++)
{
    str.Format(_T("Item %2d"), i);
    m_combobox.AddString(str);
}
// Set the minimum visible item
m_combobox.SetMinVisibleItems(10);
// Set the cue banner
m_combobox.SetCueBanner(_T("Select an item..."));

// End of extra initialization.

CComboBox:: SetCurSelCComboBox::SetCurSel

コンボボックスのリストボックスで文字列を選択します。Selects a string in the list box of a combo box.

int SetCurSel(int nSelect);

パラメーターParameters

nnSelect
選択する文字列の0から始まるインデックスを指定します。Specifies the zero-based index of the string to select. -1 の場合は、リストボックス内の現在の選択内容が削除され、エディットコントロールがクリアされます。If -1, any current selection in the list box is removed and the edit control is cleared.

戻り値Return Value

メッセージが正常に終了した場合に選択された項目の0から始まるインデックス。The zero-based index of the item selected if the message is successful. Nがリスト内の項目数より大きい場合、またはnが-1 に設定されている場合は、戻り値が CB_ERR ます。これにより、選択がクリアされます。The return value is CB_ERR if nSelect is greater than the number of items in the list or if nSelect is set to -1, which clears the selection.

解説Remarks

必要に応じて、リストボックスが表示されるように文字列をスクロールします (リストボックスが表示されている場合)。If necessary, the list box scrolls the string into view (if the list box is visible). コンボボックスのエディットコントロールのテキストが、新しい選択内容を反映するように変更されます。The text in the edit control of the combo box is changed to reflect the new selection. リストボックス内の以前の選択はすべて削除されます。Any previous selection in the list box is removed.

Example

// Select the last item in the combo box.
int nLast = pmyComboBox->GetCount() - 1;
if (nLast >= 0)
   m_pComboBox->SetCurSel(nLast);

CComboBox:: SetDroppedWidthCComboBox::SetDroppedWidth

コンボボックスのリストボックスの最小許容幅 (ピクセル単位) を設定するには、この関数を呼び出します。Call this function to set the minimum allowable width, in pixels, of the list box of a combo box.

int SetDroppedWidth(UINT nWidth);

パラメーターParameters

nWidthnWidth
コンボボックスのリストボックスの部分の許容される最小幅 (ピクセル単位)。The minimum allowable width of the list-box portion of the combo box, in pixels.

戻り値Return Value

成功した場合は、リストボックスの新しい幅。それ以外の場合は CB_ERR。If successful, the new width of the list box, otherwise CB_ERR.

解説Remarks

この関数は、 CBS_DROPDOWNまたはCBS_DROPDOWNLISTスタイルを持つコンボボックスにのみ適用されます。This function only applies to combo boxes with the CBS_DROPDOWN or CBS_DROPDOWNLIST style.

既定では、ドロップダウンリストボックスで許容される最小幅は0です。By default, the minimum allowable width of the drop-down list box is 0. コンボボックスのリストボックスの部分が表示されている場合、その幅は、許容される最小幅またはコンボボックスの幅のうち、大きい方になります。When the list-box portion of the combo box is displayed, its width is the larger of the minimum allowable width or the combo box width.

Example

// Find the longest string in the combo box.
CString str;
CSize sz;
int dx = 0;
TEXTMETRIC tm;
CDC *pDC = m_pComboBox->GetDC();
CFont *pFont = m_pComboBox->GetFont();

// Select the listbox font, save the old font
CFont *pOldFont = pDC->SelectObject(pFont);
// Get the text metrics for avg char width
pDC->GetTextMetrics(&tm);

for (int i = 0; i < m_pComboBox->GetCount(); i++)
{
   m_pComboBox->GetLBText(i, str);
   sz = pDC->GetTextExtent(str);

   // Add the avg width to prevent clipping
   sz.cx += tm.tmAveCharWidth;

   if (sz.cx > dx)
      dx = sz.cx;
}
// Select the old font back into the DC
pDC->SelectObject(pOldFont);
m_pComboBox->ReleaseDC(pDC);

// Adjust the width for the vertical scroll bar and the left and right border.
dx += ::GetSystemMetrics(SM_CXVSCROLL) + 2 * ::GetSystemMetrics(SM_CXEDGE);

// Set the width of the list box so that every item is completely visible.
m_pComboBox->SetDroppedWidth(dx);

CComboBox:: SetEditSelCComboBox::SetEditSel

コンボボックスの編集コントロールで文字を選択します。Selects characters in the edit control of a combo box.

BOOL SetEditSel(
    int nStartChar,
    int nEndChar);

パラメーターParameters

nStartCharnStartChar
開始位置を指定します。Specifies the starting position. 開始位置が-1 に設定されている場合、既存の選択はすべて削除されます。If the starting position is set to -1, then any existing selection is removed.

nEndCharnEndChar
終了位置を指定します。Specifies the ending position. 終了位置が-1 に設定されている場合、エディットコントロールの開始位置から最後の文字までのすべてのテキストが選択されます。If the ending position is set to -1, then all text from the starting position to the last character in the edit control is selected.

戻り値Return Value

メンバー関数が成功した場合は0以外の。それ以外の場合は0です。Nonzero if the member function is successful; otherwise 0. CComboBoxCBS_DROPDOWNLISTスタイルが設定されているか、リストボックスがない場合は CB_ERR ます。It is CB_ERR if CComboBox has the CBS_DROPDOWNLIST style or does not have a list box.

解説Remarks

位置は0から始まります。The positions are zero-based. エディットコントロールの最初の文字を選択するには、開始位置として0を指定します。To select the first character of the edit control, you specify a starting position of 0. 終了位置は、選択する最後の文字の直後の文字です。The ending position is for the character just after the last character to select. たとえば、エディットコントロールの最初の4文字を選択するには、開始位置0と終了位置4を使用します。For example, to select the first four characters of the edit control, you would use a starting position of 0 and an ending position of 4.

注意

この関数は、Windows ComboBoxEx コントロールではサポートされていません。This function is not supported by the Windows ComboBoxEx control. このコントロールの詳細については、Windows SDK の「 ComboBoxEx Controls 」を参照してください。For more information on this control, see ComboBoxEx Controls in the Windows SDK.

Example

CComboBox:: GetEditSel」の例を参照してください。See the example for CComboBox::GetEditSel.

CComboBox:: SetExtendedUICComboBox::SetExtendedUI

SetExtendedUI メンバー関数を呼び出して、既定のユーザーインターフェイス、またはCBS_DROPDOWNまたはCBS_DROPDOWNLISTスタイルを持つコンボボックスの拡張ユーザーインターフェイスのいずれかを選択します。Call the SetExtendedUI member function to select either the default user interface or the extended user interface for a combo box that has the CBS_DROPDOWN or CBS_DROPDOWNLIST style.

int SetExtendedUI(BOOL bExtended = TRUE);

パラメーターParameters

bExtendedbExtended
コンボボックスで拡張ユーザーインターフェイスを使用するか、既定のユーザーインターフェイスを使用するかを指定します。Specifies whether the combo box should use the extended user interface or the default user interface. 値が TRUE の場合、拡張ユーザーインターフェイスが選択されます。値が FALSE の場合は、標準のユーザーインターフェイスが選択されます。A value of TRUE selects the extended user interface; a value of FALSE selects the standard user interface.

戻り値Return Value

操作が成功した場合は CB_OKAY。エラーが発生した場合は CB_ERR。CB_OKAY if the operation is successful, or CB_ERR if an error occurs.

解説Remarks

拡張ユーザーインターフェイスは、次の方法で識別できます。The extended user interface can be identified in the following ways:

  • スタティックコントロールをクリックすると、CBS_DROPDOWNLIST スタイルのコンボボックスに対してのみリストボックスが表示されます。Clicking the static control displays the list box only for combo boxes with the CBS_DROPDOWNLIST style.

  • 下方向キーを押すと、リストボックスが表示されます (F4 は無効になります)。Pressing the DOWN ARROW key displays the list box (F4 is disabled).

項目リストが表示されていない場合 (方向キーが無効になっている場合)、静的コントロールのスクロールは無効になります。Scrolling in the static control is disabled when the item list is not visible (the arrow keys are disabled).

Example

CComboBox:: GetExtendedUI」の例を参照してください。See the example for CComboBox::GetExtendedUI.

CComboBox:: SetHorizontalExtentCComboBox::SetHorizontalExtent

コンボボックスのリストボックスの部分を水平方向にスクロールできる幅をピクセル単位で設定します。Sets the width, in pixels, by which the list-box portion of the combo box can be scrolled horizontally.

void SetHorizontalExtent(UINT nExtent);

パラメーターParameters

nExtentnExtent
コンボボックスのリストボックスの部分を水平方向にスクロールできるピクセル数を指定します。Specifies the number of pixels by which the list-box portion of the combo box can be scrolled horizontally.

解説Remarks

リストボックスの幅がこの値よりも小さい場合、水平スクロールバーはリストボックス内の項目を水平方向にスクロールします。If the width of the list box is smaller than this value, the horizontal scroll bar will horizontally scroll items in the list box. リストボックスの幅がこの値以上の場合、水平スクロールバーは非表示になります。コンボボックスにCBS_DISABLENOSCROLLスタイルが設定されている場合は、無効になります。If the width of the list box is equal to or greater than this value, the horizontal scroll bar is hidden or, if the combo box has the CBS_DISABLENOSCROLL style, disabled.

Example

// Find the longest string in the combo box.
CString str;
CSize sz;
int dx = 0;
TEXTMETRIC tm;
CDC *pDC = m_pComboBox->GetDC();
CFont *pFont = m_pComboBox->GetFont();

// Select the listbox font, save the old font
CFont *pOldFont = pDC->SelectObject(pFont);
// Get the text metrics for avg char width
pDC->GetTextMetrics(&tm);

for (int i = 0; i < m_pComboBox->GetCount(); i++)
{
   m_pComboBox->GetLBText(i, str);
   sz = pDC->GetTextExtent(str);

   // Add the avg width to prevent clipping
   sz.cx += tm.tmAveCharWidth;

   if (sz.cx > dx)
      dx = sz.cx;
}
// Select the old font back into the DC
pDC->SelectObject(pOldFont);
m_pComboBox->ReleaseDC(pDC);

// Set the horizontal extent so every character of all strings can
// be scrolled to.
m_pComboBox->SetHorizontalExtent(dx);

CComboBox:: SetItemDataCComboBox::SetItemData

コンボボックス内の指定した項目に関連付けられている32ビット値を設定します。Sets the 32-bit value associated with the specified item in a combo box.

int SetItemData(
    int nIndex,
    DWORD_PTR dwItemData);

パラメーターParameters

nIndexnIndex
設定する項目の0から始まるインデックスを格納します。Contains a zero-based index to the item to set.

dwItemDatadwItemData
項目に関連付ける新しい値を格納します。Contains the new value to associate with the item.

戻り値Return Value

エラーが発生した場合は CB_ERR します。CB_ERR if an error occurs.

解説Remarks

32ビットの項目がポインターである場合は、SetItemDataPtr メンバー関数を使用します。Use the SetItemDataPtr member function if the 32-bit item is to be a pointer.

Example

// Set the data of each item to be equal to its index.
for (int i = 0; i < m_pComboBox->GetCount(); i++)
{
   m_pComboBox->SetItemData(i, i);
}

CComboBox:: SetItemDataPtrCComboBox::SetItemDataPtr

コンボボックス内の指定した項目に関連付けられている32ビット値を、指定したポインター (void *) に設定します。Sets the 32-bit value associated with the specified item in a combo box to be the specified pointer (void *).

int SetItemDataPtr(
    int nIndex,
    void* pData);

パラメーターParameters

nIndexnIndex
項目の0から始まるインデックスを格納します。Contains a zero-based index to the item.

pDatapData
項目に関連付けるポインターを格納します。Contains the pointer to associate with the item.

戻り値Return Value

エラーが発生した場合は CB_ERR します。CB_ERR if an error occurs.

解説Remarks

コンボボックス内の項目の相対位置は、項目が追加または削除されると変化することがありますが、このポインターはコンボボックスの有効期間にわたって有効なままです。This pointer remains valid for the life of the combo box, even though the item's relative position within the combo box might change as items are added or removed. そのため、ボックス内の項目のインデックスは変更される可能性がありますが、ポインターは信頼できる状態のままです。Hence, the item's index within the box can change, but the pointer remains reliable.

Example

// Set the data pointer of each item to be NULL.
for (int i = 0; i < m_pComboBox->GetCount(); i++)
{
   m_pComboBox->SetItemDataPtr(i, NULL);
}

CComboBox:: SetItemHeightCComboBox::SetItemHeight

SetItemHeight メンバー関数を呼び出して、コンボボックス内のリスト項目の高さ、またはコンボボックスの編集コントロール (または静的テキスト) 部分の高さを設定します。Call the SetItemHeight member function to set the height of list items in a combo box or the height of the edit-control (or static-text) portion of a combo box.

int SetItemHeight(
    int nIndex,
    UINT cyItemHeight);

パラメーターParameters

nIndexnIndex
リスト項目の高さ、またはコンボボックスの編集コントロール (または静的テキスト) 部分の高さを設定するかどうかを指定します。Specifies whether the height of list items or the height of the edit-control (or static-text) portion of the combo box is set.

コンボボックスにCBS_OWNERDRAWVARIABLEスタイルが設定されている場合、 nIndexは、高さを設定するリスト項目の0から始まるインデックスを指定します。それ以外の場合、 nIndexは0にする必要があり、すべてのリスト項目の高さが設定されます。If the combo box has the CBS_OWNERDRAWVARIABLE style, nIndex specifies the zero-based index of the list item whose height is to be set; otherwise, nIndex must be 0 and the height of all list items will be set.

NIndexが-1 の場合は、コンボボックスの編集コントロールまたは静的テキスト部分の高さを設定します。If nIndex is -1, the height of the edit-control or static-text portion of the combo box is to be set.

cyItemHeightcyItemHeight
NIndexによって識別されるコンボボックスコンポーネントの高さ (ピクセル単位) を指定します。Specifies the height, in pixels, of the combo-box component identified by nIndex.

戻り値Return Value

インデックスまたは高さが無効である場合に CB_ERR します。それ以外の場合は0です。CB_ERR if the index or height is invalid; otherwise 0.

解説Remarks

コンボボックスの編集コントロール (または静的テキスト) 部分の高さは、リスト項目の高さとは関係なく設定されます。The height of the edit-control (or static-text) portion of the combo box is set independently of the height of the list items. アプリケーションでは、エディットコントロール (または静的テキスト) 部分の高さが特定のリストボックス項目の高さよりも小さくないことを確認する必要があります。An application must ensure that the height of the edit-control (or static-text) portion is not smaller than the height of a particular list-box item.

Example

// Set the height of every item to be the
// vertical size of the item's text extent.
CString str;
CSize sz;
CDC *pDC = m_pComboBox->GetDC();
for (int i = 0; i < m_pComboBox->GetCount(); i++)
{
   m_pComboBox->GetLBText(i, str);
   sz = pDC->GetTextExtent(str);

   m_pComboBox->SetItemHeight(i, sz.cy);
}
m_pComboBox->ReleaseDC(pDC);

CComboBox:: SetLocaleCComboBox::SetLocale

このコンボボックスのロケール識別子を設定します。Sets the locale identifier for this combo box.

LCID SetLocale(LCID nNewLocale);

パラメーターParameters

nNewLocalenNewLocale
コンボボックスに設定する新しいロケール識別子 (LCID) 値。The new locale identifier (LCID) value to set for the combo box.

戻り値Return Value

このコンボボックスの前のロケール識別子 (LCID) の値。The previous locale identifier (LCID) value for this combo box.

解説Remarks

SetLocale が呼び出されない場合は、既定のロケールがシステムから取得されます。If SetLocale is not called, the default locale is obtained from the system. このシステムの既定のロケールは、コントロールパネルの地域 (または国際) アプリケーションを使用して変更できます。This system default locale can be modified by using Control Panel's Regional (or International) application.

Example

// My LCID to use.
LCID mylcid = MAKELCID(MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH_MEXICAN),
                       SORT_DEFAULT);

// Force the list box to use my locale.
m_pComboBox->SetLocale(mylcid);
ASSERT(m_pComboBox->GetLocale() == mylcid);

CComboBox:: SetMinVisibleItemsCComboBox::SetMinVisibleItems

現在のコンボボックスコントロールのドロップダウンリストに表示される項目の最小数を設定します。Sets the minimum number of visible items in the drop-down list of the current combo box control.

BOOL SetMinVisibleItems(int iMinVisible);

パラメーターParameters

パラメーターParameter DescriptionDescription
非表示iMinVisible から表示項目の最小数を指定します。[in] Specifies the minimum number of visible items.

戻り値Return Value

このメソッドが成功した場合は TRUE。それ以外の場合は FALSE。TRUE if this method is successful; otherwise, FALSE.

解説Remarks

このメソッドは、Windows SDK で説明されているCB_SETMINVISIBLEメッセージを送信します。This method sends the CB_SETMINVISIBLE message, which is described in the Windows SDK.

Example

次のコード例では、コンボボックスコントロールにプログラムでアクセスするために使用される、 m_combobox変数を定義します。The following code example defines the variable, m_combobox, that is used to programmatically access the combo box control. この変数は次の例で使用されています。This variable is used in the next example.

// Variable to access the combo box control
CComboBox m_combobox;

Example

次のコード例では、コンボボックスコントロールのドロップダウンリストに20個の項目を挿入します。The following code example inserts 20 items into the drop-down list of a combo box control. 次に、ユーザーがドロップダウン矢印をクリックしたときに、10個以上の項目が表示されることを指定します。Then it specifies that a minimum of 10 items be displayed when a user presses the drop-down arrow.

// Add extra initialization here.

// Add 20 items to the combo box. The Resource Editor
// has already been used to set the style of the combo
// box to CBS_SORT.
CString str;
for (int i = 1; i <= 20; i++)
{
    str.Format(_T("Item %2d"), i);
    m_combobox.AddString(str);
}
// Set the minimum visible item
m_combobox.SetMinVisibleItems(10);
// Set the cue banner
m_combobox.SetCueBanner(_T("Select an item..."));

// End of extra initialization.

CComboBox:: SetTopIndexCComboBox::SetTopIndex

コンボボックスのリストボックスの部分に特定の項目が確実に表示されるようにします。Ensures that a particular item is visible in the list-box portion of the combo box.

int SetTopIndex(int nIndex);

パラメーターParameters

nIndexnIndex
リストボックス項目の0から始まるインデックスを指定します。Specifies the zero-based index of the list-box item.

戻り値Return Value

成功した場合は0。エラーが発生した場合は CB_ERR。Zero if successful, or CB_ERR if an error occurs.

解説Remarks

システムは、[ nIndex ] で指定された項目がリストボックスの一番上に表示されるか、最大のスクロール範囲に達したときまで、リストボックスをスクロールします。The system scrolls the list box until either the item specified by nIndex appears at the top of the list box or the maximum scroll range has been reached.

Example

// Set the first visible item in the combo box to be the middle item
m_pComboBox->SetTopIndex(m_pComboBox->GetCount() / 2);

CComboBox:: ShowDropDownCComboBox::ShowDropDown

CBS_DROPDOWNまたはCBS_DROPDOWNLISTスタイルを持つコンボボックスのリストボックスの表示と非表示を切り替えます。Shows or hides the list box of a combo box that has the CBS_DROPDOWN or CBS_DROPDOWNLIST style.

void ShowDropDown(BOOL bShowIt = TRUE);

パラメーターParameters

bShowItbShowIt
ドロップダウンリストボックスを表示するか非表示にするかを指定します。Specifies whether the drop-down list box is to be shown or hidden. 値が TRUE の場合、リストボックスが表示されます。A value of TRUE shows the list box. 値が FALSE の場合は、リストボックスが非表示になります。A value of FALSE hides the list box.

解説Remarks

既定では、このスタイルのコンボボックスにリストボックスが表示されます。By default, a combo box of this style will show the list box.

このメンバー関数は、 CBS_SIMPLEスタイルを使用して作成されたコンボボックスには影響しません。This member function has no effect on a combo box created with the CBS_SIMPLE style.

Example

CComboBox:: GetDroppedState」の例を参照してください。See the example for CComboBox::GetDroppedState.

参照See also

MFC のサンプル CTRLBARSMFC Sample CTRLBARS
CWnd クラスCWnd Class
階層図Hierarchy Chart
CWnd クラスCWnd Class
CButton クラスCButton Class
CEdit クラスCEdit Class
CListBox クラスCListBox Class
CScrollBar クラスCScrollBar Class
CStatic クラスCStatic Class
CDialog クラスCDialog Class