다음을 통해 공유


CComboBoxEx 클래스

이미지 목록에 대한 지원을 제공하여 콤보 상자 컨트롤을 확장합니다.

구문

class CComboBoxEx : public CComboBox

멤버

공용 생성자

속성 설명
CComboBoxEx::CComboBoxEx CComboBoxEx 개체를 생성합니다.

공용 메서드

이름 설명
CComboBoxEx::Create 콤보 상자를 만들어 개체에 CComboBoxEx 연결합니다.
CComboBoxEx::CreateEx 지정된 Windows 확장 스타일을 사용하여 콤보 상자를 만들고 개체에 ComboBoxEx 연결합니다.
CComboBoxEx::DeleteItem 컨트롤에서 ComboBoxEx 항목을 제거합니다.
CComboBoxEx::GetComboBoxCtrl 자식 콤보 상자 컨트롤에 대한 포인터를 검색합니다.
CComboBoxEx::GetEditCtrl 컨트롤의 편집 컨트롤 부분에 대한 핸들을 검색합니다 ComboBoxEx .
CComboBoxEx::GetExtendedStyle 컨트롤에 사용 중인 확장된 스타일을 검색합니다 ComboBoxEx .
CComboBoxEx::GetImageList 컨트롤에 할당된 이미지 목록에 대한 포인터를 검색합니다 ComboBoxEx .
CComboBoxEx::GetItem 지정된 ComboBoxEx 항목에 대한 항목 정보를 검색합니다.
CComboBoxEx::HasEditChanged 사용자가 입력하여 편집 컨트롤의 ComboBoxEx 내용을 변경했는지 여부를 확인합니다.
CComboBoxEx::InsertItem 컨트롤에 새 항목을 삽입합니다 ComboBoxEx .
CComboBoxEx::SetExtendedStyle 컨트롤 내에서 ComboBoxEx 확장 스타일을 설정합니다.
CComboBoxEx::SetImageList 컨트롤의 이미지 목록을 ComboBoxEx 설정합니다.
CComboBoxEx::SetItem 컨트롤의 항목에 ComboBoxEx 대한 특성을 설정합니다.
CComboBoxEx::SetWindowTheme 확장된 콤보 상자 컨트롤의 비주얼 스타일을 설정합니다.

설명

콤보 상자 컨트롤을 만드는 데 사용하면 CComboBoxEx 더 이상 고유한 이미지 그리기 코드를 구현할 필요가 없습니다. 대신 이미지 목록에서 이미지에 액세스하는 데 사용합니다 CComboBoxEx .

이미지 목록 지원

표준 콤보 상자에서 콤보 상자의 소유자는 콤보 상자를 소유자 그리기 컨트롤로 만들어 이미지를 그립니다. 사용할 CComboBoxEx때는 그리기 스타일이 암시적이므로 그리기 스타일 CBS_OWNERDRAWFIXED CBS_HASSTRINGS 설정할 필요가 없습니다. 그렇지 않으면 그리기 작업을 수행하는 코드를 작성해야 합니다. 컨트롤은 CComboBoxEx 항목당 최대 3개의 이미지를 지원합니다. 하나는 선택한 상태의 경우, 다른 하나는 선택되지 않은 상태이고, 다른 하나는 오버레이 이미지용입니다.

스타일

CComboBoxEx 는 스타일 CBS_SIMPLE, CBS_DROPDOWN, CBS_DROPDOWNLIST 및 WS_CHILD 지원합니다. 창을 만들 때 전달된 다른 모든 스타일은 컨트롤에서 무시됩니다. 창이 만들어지면 멤버 함수 SetExtendedStyleCComboBoxEx 호출하여 다른 콤보 상자 스타일을 제공할 수 있습니다. 이러한 스타일을 사용하면 다음을 수행할 수 있습니다.

  • 목록에서 문자열 검색을 대/소문자를 구분하도록 설정합니다.

  • 슬래시('/'), 백슬래시('\') 및 마침표('.') 문자를 단어 구분 기호로 사용하는 콤보 상자 컨트롤을 만듭니다. 이렇게 하면 사용자가 바로 가기 키 Ctrl+ 화살표를 사용하여 단어에서 단어로 이동할 수 있습니다.

  • 콤보 상자 컨트롤을 이미지를 표시하거나 표시하지 않도록 설정합니다. 이미지가 표시되지 않으면 콤보 상자에서 이미지를 수용하는 텍스트 들여쓰기를 제거할 수 있습니다.

  • 포함된 더 넓은 콤보 상자를 클립하도록 크기 조정을 포함하여 좁은 콤보 상자 컨트롤을 만듭니다.

이러한 스타일 플래그는 CComboBoxEx 사용에서 자세히 설명합니다.

항목 보존 및 콜백 항목 특성

항목 및 이미지에 대한 인덱스, 들여쓰기 값 및 텍스트 문자열과 같은 항목 정보는 Windows SDK에 설명된 대로 Win32 구조 체 COMBOBOXEXITEM에 저장됩니다. 구조체에는 콜백 플래그에 해당하는 멤버도 포함됩니다.

자세한 개념 토론은 CComboBoxEx 사용을 참조하세요.

상속 계층 구조

CObject

CCmdTarget

CWnd

CComboBox

CComboBoxEx

요구 사항

헤더: afxcmn.h

CComboBoxEx::CComboBoxEx

이 멤버 함수를 호출하여 개체를 만듭니다 CComboBoxEx .

CComboBoxEx();

CComboBoxEx::Create

콤보 상자를 만들어 개체에 CComboBoxEx 연결합니다.

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

매개 변수

dwStyle
콤보 상자에 적용된 콤보 상자 스타일의 조합을 지정합니다. 스타일에 대한 자세한 내용은 아래의 비고를 참조하세요.

rect
콤보 상자의 위치와 크기인 CRect 개체 또는 RECT 구조체에 대한 참조입니다.

pParentWnd
콤보 상자 (일반적으로 CDialog)의 부모 창인 CWnd 개체에 대한 포인터입니다. NULL이 아니어야 합니다.

nID
콤보 상자의 컨트롤 ID를 지정합니다.

Return Value

개체가 성공적으로 만들어진 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

다음 두 단계로 개체를 CComboBoxEx 만듭니다.

  1. CComboBoxEx를 호출하여 개체를 생성합니다CComboBoxEx.

  2. 확장된 Windows 콤보 상자를 만들고 개체에 연결하는 이 멤버 함수를 CComboBoxEx 호출합니다.

호출 Create할 때 MFC는 공통 컨트롤을 초기화합니다.

콤보 상자를 만들 때 다음 콤보 상자 스타일을 모두 지정할 수 있습니다.

  • CBS_SIMPLE

  • CBS_DROPDOWN

  • CBS_DROPDOWNLIST

  • CBS_AUTOHSCROLL

  • WS_CHILD

창을 만들 때 전달된 다른 모든 스타일은 무시됩니다. 컨트롤은 ComboBoxEx 추가 기능을 제공하는 확장된 스타일도 지원합니다. 이러한 스타일은 Windows SDK의 ComboBoxEx 컨트롤 확장 스타일에 설명되어 있습니다. SetExtendedStyle을 호출하여 이러한 스타일을 설정합니다.

컨트롤에 확장 창 스타일을 사용하려면 대신 CreateExCreate를 호출합니다.

CComboBoxEx::CreateEx

이 함수를 호출하여 확장된 콤보 상자 컨트롤(자식 창)을 만들고 개체와 CComboBoxEx 연결합니다.

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

매개 변수

dwExStyle
만들 컨트롤의 확장 스타일을 지정합니다. 확장된 Windows 스타일 목록은 Windows SDK의 CreateWindowEx에 대한 dwExStyle 매개 변수를 참조하세요.

dwStyle
콤보 상자 컨트롤의 스타일입니다. 스타일 목록은 만들기를 참조하세요.

rect
pParentWnd의 클라이언트 좌표에서 만들 창의 크기와 위치를 설명하는 RECT 구조체에 대한 참조입니다.

pParentWnd
컨트롤의 부모 창에 대한 포인터입니다.

nID
컨트롤의 자식 창 ID입니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

Windows 확장 스타일 서문 WS_EX_ 지정된 확장 Windows 스타일을 적용하는 대신 Create 사용합니다CreateEx.

CreateEx 는 dwExStyle로 지정된 확장된 Windows 스타일을 사용하여 컨트롤을 만듭니다. SetExtendedStyle을 사용하여 확장된 콤보 상자 컨트롤과 관련된 확장 스타일을 설정해야 합니다. 예를 들어 CreateEx WS_EX_CONTEXTHELP 같은 스타일을 설정하지만 CBES_EX_CASESENSITIVE 같은 스타일을 설정하는 데 사용합니다 SetExtendedStyle . 자세한 내용은 Windows SDK의 ComboBoxEx Control 확장 스타일 항목 에 설명된 스타일을 참조하세요.

CComboBoxEx::DeleteItem

컨트롤에서 ComboBoxEx 항목을 제거합니다.

int DeleteItem(int iIndex);

매개 변수

iIndex
제거할 항목의 인덱스(0부터 시작)입니다.

Return Value

컨트롤에서 다시 기본 항목 수입니다. iIndex가 유효하지 않으면 함수는 CB_ERR 반환합니다.

설명

이 멤버 함수는 Windows SDK에 설명된 대로 메시지 CBEM_DELETEITEM 기능을 구현합니다. DeleteItem을 호출하면 CBEN_DELETEITEM 알림이 있는 WM_NOTIFY 메시지가 부모 창으로 전송됩니다.

CComboBoxEx::GetComboBoxCtrl

이 멤버 함수를 호출하여 개체 내의 콤보 상자 컨트롤에 대한 포인터를 가져옵니다 CComboBoxEx .

CComboBox* GetComboBoxCtrl();

Return Value

CComboBox 개체에 대한 포인터입니다.

설명

컨트롤은 CComboBoxEx 부모를 캡슐화하는 부모 창으로 CComboBox구성됩니다.

CComboBox 반환 값이 가리키는 개체는 임시 개체이며 다음 유휴 처리 시간 동안 제거됩니다.

CComboBoxEx::GetEditCtrl

이 멤버 함수를 호출하여 콤보 상자의 편집 컨트롤에 대한 포인터를 가져옵니다.

CEdit* GetEditCtrl();

Return Value

CEdit 개체에 대한 포인터입니다.

설명

컨트롤은 CComboBoxEx CBS_DROPDOWN 스타일로 만들 때 편집 상자를 사용합니다.

CEdit 반환 값이 가리키는 개체는 임시 개체이며 다음 유휴 처리 시간 동안 제거됩니다.

CComboBoxEx::GetExtendedStyle

이 멤버 함수를 호출하여 컨트롤에 사용되는 CComboBoxEx 확장 스타일을 가져옵니다.

DWORD GetExtendedStyle() const;

Return Value

콤보 상자 컨트롤에 사용되는 확장 스타일을 포함하는 DWORD 값입니다.

설명

이러한 스타일에 대한 자세한 내용은 Windows SDK의 ComboBoxEx 컨트롤 확장 스타일을 참조하세요.

CComboBoxEx::GetImageList

이 멤버 함수를 호출하여 컨트롤에서 사용하는 이미지 목록에 대한 포인터를 가져옵니다 CComboBoxEx .

CImageList* GetImageList() const;

Return Value

CImageList 개체에 대한 포인터입니다 . 실패하면 이 멤버 함수는 NULL을 반환합니다.

설명

CImageList 반환 값이 가리키는 개체는 임시 개체이며 다음 유휴 처리 시간 동안 제거됩니다.

CComboBoxEx::GetItem

지정된 ComboBoxEx 항목에 대한 항목 정보를 검색합니다.

BOOL GetItem(COMBOBOXEXITEM* pCBItem);

매개 변수

pCBItem
항목 정보를 받을 COMBOBOXEXITEM 구조체에 대한 포인터입니다.

Return Value

작업이 성공한 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

이 멤버 함수는 Windows SDK에 설명된 대로 메시지 CBEM_GETITEM 기능을 구현합니다.

CComboBoxEx::HasEditChanged

사용자가 입력하여 편집 컨트롤의 ComboBoxEx 내용을 변경했는지 여부를 확인합니다.

BOOL HasEditChanged();

Return Value

사용자가 컨트롤의 편집 상자에 입력한 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

이 멤버 함수는 Windows SDK에 설명된 대로 메시지 CBEM_HASEDITCHANGED 기능을 구현합니다.

CComboBoxEx::InsertItem

컨트롤에 새 항목을 삽입합니다 ComboBoxEx .

int InsertItem(const COMBOBOXEXITEM* pCBItem);

매개 변수

pCBItem
항목 정보를 받을 COMBOBOXEXITEM 구조체에 대한 포인터입니다. 이 구조에는 항목에 대한 콜백 플래그 값이 포함됩니다.

Return Value

성공하면 새 항목이 삽입된 인덱스입니다. 그렇지 않으면 -1입니다.

설명

전화를 걸InsertItem면 CBEN_INSERTITEM 알림이 포함된 WM_NOTIFY 메시지가 부모 창으로 전송됩니다.

CComboBoxEx::SetExtendedStyle

콤보 상자 확장 컨트롤에 사용되는 확장 스타일을 설정하려면 이 멤버 함수를 호출합니다.

DWORD SetExtendedStyle(
    DWORD dwExMask,
    DWORD dwExStyles);

매개 변수

dwExMask
영향을 받을 dwExStyles스타일을 나타내는 DWORD 값입니다. dwExMask확장 스타일만 변경됩니다. 다른 모든 스타일은 그대로 기본 됩니다. 이 매개 변수가 0이면 dwExStyles의 모든 스타일이 영향을 받습니다.

dwExStyles
컨트롤에 대해 설정할 콤보 상자 컨트롤 확장 스타일을 포함하는 DWORD 값입니다.

Return Value

이전에 컨트롤에 사용된 확장 스타일을 포함하는 DWORD 값입니다.

설명

이러한 스타일에 대한 자세한 내용은 Windows SDK의 ComboBoxEx 컨트롤 확장 스타일을 참조하세요.

확장된 창 스타일을 사용하여 콤보 상자 확장 컨트롤을 만들려면 CreateEx를 사용합니다.

CComboBoxEx::SetImageList

컨트롤의 이미지 목록을 ComboBoxEx 설정합니다.

CImageList* SetImageList(CImageList* pImageList);

매개 변수

pImageList
컨트롤에 CImageList 사용할 이미지가 포함된 개체에 대한 포인터입니다 CComboBoxEx .

Return Value

컨트롤에서 이전에 사용한 이미지를 포함하는 CImageList 개체에 대한 CComboBoxEx 포인터입니다. 이전에 설정된 이미지 목록이 없으면 NULL입니다.

설명

이 멤버 함수는 Windows SDK에 설명된 대로 메시지 CBEM_SETIMAGELIST 기능을 구현합니다. 기본 편집 컨트롤의 높이를 변경하는 경우 호출한 후 Win32 함수 SetWindowPos 를 호출 SetImageList하여 컨트롤 크기를 조정하거나 제대로 표시되지 않습니다.

CImageList 반환 값이 가리키는 개체는 임시 개체이며 다음 유휴 처리 시간 동안 제거됩니다.

CComboBoxEx::SetItem

컨트롤의 항목에 ComboBoxEx 대한 특성을 설정합니다.

BOOL SetItem(const COMBOBOXEXITEM* pCBItem);

매개 변수

pCBItem
항목 정보를 받을 COMBOBOXEXITEM 구조체에 대한 포인터입니다.

Return Value

작업이 성공한 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

이 멤버 함수는 Windows SDK에 설명된 대로 메시지 CBEM_SETITEM 기능을 구현합니다.

CComboBoxEx::SetWindowTheme

확장된 콤보 상자 컨트롤의 비주얼 스타일을 설정합니다.

HRESULT SetWindowTheme(LPCWSTR pszSubAppName);

매개 변수

pszSubAppName
설정할 확장된 콤보 상자 비주얼 스타일을 포함하는 유니코드 문자열에 대한 포인터입니다.

Return Value

반환 값은 사용되지 않습니다.

설명

이 멤버 함수는 Windows SDK에 설명된 대로 CBEM_SETWINDOWTHEME 메시지의 기능을 에뮬레이트합니다.

참고 항목

MFC 샘플 MFCIE
CComboBox 클래스
계층 구조 차트
CComboBox 클래스