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 지원합니다. 창을 만들 때 전달된 다른 모든 스타일은 컨트롤에서 무시됩니다. 창이 만들어지면 멤버 함수 SetExtendedStyle을 CComboBoxEx
호출하여 다른 콤보 상자 스타일을 제공할 수 있습니다. 이러한 스타일을 사용하면 다음을 수행할 수 있습니다.
목록에서 문자열 검색을 대/소문자를 구분하도록 설정합니다.
슬래시('/'), 백슬래시('\') 및 마침표('.') 문자를 단어 구분 기호로 사용하는 콤보 상자 컨트롤을 만듭니다. 이렇게 하면 사용자가 바로 가기 키 Ctrl+ 화살표를 사용하여 단어에서 단어로 이동할 수 있습니다.
콤보 상자 컨트롤을 이미지를 표시하거나 표시하지 않도록 설정합니다. 이미지가 표시되지 않으면 콤보 상자에서 이미지를 수용하는 텍스트 들여쓰기를 제거할 수 있습니다.
포함된 더 넓은 콤보 상자를 클립하도록 크기 조정을 포함하여 좁은 콤보 상자 컨트롤을 만듭니다.
이러한 스타일 플래그는 CComboBoxEx 사용에서 자세히 설명합니다.
항목 보존 및 콜백 항목 특성
항목 및 이미지에 대한 인덱스, 들여쓰기 값 및 텍스트 문자열과 같은 항목 정보는 Windows SDK에 설명된 대로 Win32 구조 체 COMBOBOXEXITEM에 저장됩니다. 구조체에는 콜백 플래그에 해당하는 멤버도 포함됩니다.
자세한 개념 토론은 CComboBoxEx 사용을 참조하세요.
상속 계층 구조
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
만듭니다.
CComboBoxEx를 호출하여 개체를 생성합니다
CComboBoxEx
.확장된 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 메시지의 기능을 에뮬레이트합니다.