Share via


콤보 상자(Windows 컨트롤)

이 섹션에는 콤보 상자와 함께 사용되는 프로그래밍 요소에 대한 정보가 포함되어 있습니다. 콤보 상자는 목록 상자와 편집 컨트롤의 많은 기능을 결합한 COMBOBOX 클래스에 의해 정의된 고유한 형식의 컨트롤입니다.

개요

항목 콘텐츠
콤보 상자 정보 이 섹션에서는 다양한 종류의 콤보 상자에 대해 설명합니다.
콤보 상자 기능 이 문서에서는 콤보 상자의 기능에 대해 설명합니다.
콤보 상자 사용 이 섹션의 코드 예는 콤보 상자와 관련된 작업을 수행하는 방법을 보여 줍니다.

Functions

항목 콘텐츠
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 기본 UI(사용자 인터페이스) 또는 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부터 시작)를 검색합니다. 처음에는 인덱스가 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 알림 코드가 전송됩니다. 사용자는 목록 상자를 클릭하거나 화살표 키를 사용하여 선택을 변경할 수 있습니다. 콤보 상자의 부모 창은 wParam 매개 변수의 부모 단어에 CBN_SELCHANGE가 있는 WM_COMMAND 메시지 형식으로 이 알림을 받습니다.
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 소유자가 그린 정렬된 목록 상자 또는 콤보 상자에서 두 항목에 대한 식별자 및 애플리케이션 제공 데이터를 제공합니다.
DRAWITEMSTRUCT 소유자가 그린 컨트롤 또는 메뉴 항목을 그리는 방법을 결정하기 위해 소유자 창에 필요한 정보를 제공합니다. 소유자가 그린 컨트롤 또는 메뉴 항목의 소유자 창은 이 구조체에 대한 포인터를 WM_DRAWITEM 메시지의 lParam 매개 변수로 받습니다.
MEASUREITEMSTRUCT 소유자가 그린 컨트롤 또는 메뉴 항목의 차원을 시스템에 알립니다. 이렇게 하면 시스템이 컨트롤과 사용자의 상호 작용을 올바르게 처리할 수 있습니다.

상수

항목 콘텐츠
콤보 상자 스타일 CreateWindow 또는 CreateWindowEx 함수를 사용하여 콤보 상자를 만들려면 COMBOBOX 클래스, 적절한 창 스타일 상수 및 다음 콤보 상자 스타일의 조합을 지정합니다.