CCheckListBox
수업
Windows 검사 목록 상자의 기능을 제공합니다.
구문
class CCheckListBox : public CListBox
멤버
공용 생성자
속성 | 설명 |
---|---|
CCheckListBox::CCheckListBox |
CCheckListBox 개체를 생성합니다. |
공용 메서드
이름 | 설명 |
---|---|
CCheckListBox::Create |
Windows 확인란을 만들어 개체에 CCheckListBox 연결합니다. |
CCheckListBox::DrawItem |
소유자 그리기 목록 상자의 시각적 측면이 변경되면 프레임워크에서 호출됩니다. |
CCheckListBox::Enable |
확인란 항목을 사용하거나 사용하지 않도록 설정합니다. |
CCheckListBox::GetCheck |
항목 확인란의 상태를 가져옵니다. |
CCheckListBox::GetCheckStyle |
컨트롤 확인란의 스타일을 가져옵니다. |
CCheckListBox::IsEnabled |
항목을 사용할 수 있는지 여부를 확인합니다. |
CCheckListBox::MeasureItem |
소유자 그리기 스타일이 있는 목록 상자가 만들어지면 프레임워크에서 호출됩니다. |
CCheckListBox::OnGetCheckPosition |
항목 확인란의 위치를 가져오기 위해 프레임워크에서 호출됩니다. |
CCheckListBox::SetCheck |
항목 확인란의 상태를 설정합니다. |
CCheckListBox::SetCheckStyle |
컨트롤 확인란의 스타일을 설정합니다. |
설명
"검사 목록 상자"에는 파일 이름과 같은 항목 목록이 표시됩니다. 목록의 각 항목 옆에는 사용자가 확인하거나 지울 수 있는 확인란이 있습니다.
CCheckListBox
는 목록에 텍스트 문자열 이상이 포함되어 있으므로 소유자가 그린 컨트롤에만 해당됩니다. 가장 간단하게 검사 목록 상자에는 텍스트 문자열과 확인란이 포함되어 있지만 텍스트가 전혀 필요하지는 않습니다. 예를 들어 각 항목 옆에 확인란이 있는 작은 비트맵 목록이 있을 수 있습니다.
사용자 고유의 검사 목록 상자를 만들려면 .에서 CCheckListBox
사용자 고유의 클래스를 파생해야 합니다. 고유한 클래스를 파생하려면 파생 클래스에 대한 생성자를 작성한 다음 Create
호출합니다.
목록 상자에서 부모로 보낸 Windows 알림 메시지(일반적으로 파생된 CDialog
클래스)를 처리하려면 각 메시지에 대한 부모 클래스에 메시지 맵 항목 및 메시지 처리기 멤버 함수를 추가합니다.
각 메시지 맵 항목은 다음 형식을 사용합니다.
ON_Notification ( id
, memberFxn
)
여기서 id
알림을 보내는 컨트롤의 자식 창 ID를 지정하고 memberFxn
알림을 처리하기 위해 작성한 부모 멤버 함수의 이름입니다.
부모의 함수 프로토타입은 다음과 같습니다.
afx_msg void memberFxn();
특히 CCheckListBox
메시지 맵 항목과 관련된 메시지 맵 항목은 하나뿐입니다(메시지 맵 항목 CListBox
도 참조).
ON_CLBN_CHKCHANGE
사용자가 항목의 확인란 상태를 변경했습니다.
검사 목록 상자가 기본 검사 목록 상자(각각 왼쪽에 기본 크기의 확인란이 있는 문자열 목록)인 경우 기본값 CCheckListBox::DrawItem
을 사용하여 확인란을 그릴 수 있습니다. 그렇지 않으면 함수와 함수를 CListBox::CompareItem
재정의 CCheckListBox::DrawItem
CCheckListBox::MeasureItem
해야 합니다.
대화 상자 템플릿에서 또는 코드에서 직접 확인란을 만들 수 있습니다.
상속 계층 구조
CCheckListBox
요구 사항
머리글: afxwin.h
CCheckListBox::CCheckListBox
CCheckListBox
개체를 생성합니다.
CCheckListBox();
설명
두 단계로 개체를 CCheckListBox
생성합니다. 먼저 파생된 클래스를 정의한 CCheckListBox
다음, 호출 Create
하여 Windows 검사 목록 상자를 초기화하고 개체에 CCheckListBox
연결합니다.
예시
CCheckListBox myCheckListBox;
myCheckListBox.Create(LBS_HASSTRINGS | LBS_OWNERDRAWFIXED,
CRect(10, 10, 100, 100), this, IDC_MYCHECKLISTBOX);
CCheckListBox::Create
Windows 확인란을 만들어 개체에 CCheckListBox
연결합니다.
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
매개 변수
dwStyle
검사 목록 상자의 스타일을 지정합니다. 스타일은 (목록의 모든 항목이 같은 높이) 또는 LBS_OWNERDRAWVARIABLE
(목록의 항목은 다양한 높이의) 중 하나 LBS_OWNERDRAWFIXED
여야 LBS_HASSTRINGS
합니다. 이 스타일은 을 제외한 LBS_USETABSTOPS
다른 목록 상자 스타일과 결합할 수 있습니다.
rect
검사 목록 상자 크기 및 위치를 지정합니다. 개체 또는 구조체일 CRect
RECT
수 있습니다.
pParentWnd
검사 목록 상자의 부모 창(일반적으로 개체)을 CDialog
지정합니다. NULL이 아니어야 합니다.
nID
검사 목록 상자의 컨트롤 ID를 지정합니다.
Return Value
성공하면 0이 아니고, 그렇지 않으면 0입니다.
설명
두 단계로 개체를 CCheckListBox
생성합니다. 먼저 파생된 클래스를 정의한 CcheckListBox
다음 Windows 검사 목록 상자를 초기화하고 해당 클래스를 호출 Create
합니다 CCheckListBox
. 샘플을 참조하세요 CCheckListBox::CCheckListBox
.
실행되면 Windows는 WM_NCCREATE
검사 목록-상자 컨트롤에 , WM_CREATE
WM_NCCALCSIZE
및 WM_GETMINMAXINFO
메시지를 보냅니 Create
다.
이러한 메시지는 기본적으로 기본 클래스의 OnNcCreate
, OnCreate
, OnNcCalcSize
및 OnGetMinMaxInfo
멤버 함수에 CWnd
의해 처리됩니다. 기본 메시지 처리를 확장하려면 파생 클래스에 메시지 맵을 추가하고 이전 메시지 처리기 멤버 함수를 재정의합니다. 예를 들어 새 클래스에 필요한 초기화를 수행하려면 재정 OnCreate
의합니다.
검사 목록 상자 컨트롤에 다음 창 스타일을 적용합니다.
WS_CHILD
늘WS_VISIBLE
보통WS_DISABLED
드물게WS_VSCROLL
세로 스크롤 막대를 추가하려면WS_HSCROLL
가로 스크롤 막대를 추가하려면WS_GROUP
컨트롤을 그룹화하려면WS_TABSTOP
이 컨트롤에 대한 탭을 허용하려면
CCheckListBox::DrawItem
소유자가 그린 검사 목록 상자의 시각적 측면이 변경되면 프레임워크에서 호출됩니다.
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
매개 변수
lpDrawItemStruct
필요한 그리기 형식에 DRAWITEMSTRUCT
대한 정보를 포함하는 구조체에 대한 긴 포인터입니다.
설명
구조체의 DRAWITEMSTRUCT
멤버 및 itemState
멤버는 itemAction
수행할 그리기 동작을 정의합니다.
기본적으로 이 함수는 왼쪽에 기본 크기의 확인란이 있는 문자열 목록으로 구성된 기본 확인란 목록을 그립니다. 확인란 목록 크기는 에 지정된 Create
크기입니다.
문자열이 아닌 목록, 가변 높이 항목이 있는 목록 또는 왼쪽에 없는 확인란이 있는 확인란과 같이 기본값이 아닌 소유자 그리기 확인란의 그리기를 구현하려면 이 멤버 함수를 재정의합니다. 애플리케이션은 이 멤버 함수가 종료되기 전에 제공 lpDrawItemStruct
된 표시 컨텍스트에 대해 선택한 모든 GDI(그래픽 디바이스 인터페이스) 개체를 복원해야 합니다.
검사 목록 상자 항목이 모두 같은 높이가 아닌 경우 검사 목록 상자 스타일(지정됨 Create
)이어야 LBS_OWNERVARIABLE
하며 함수를 재정의 MeasureItem
해야 합니다.
CCheckListBox::Enable
이 함수를 호출하여 검사 목록 항목을 사용하거나 사용하지 않도록 설정합니다.
void Enable(
int nIndex,
BOOL bEnabled = TRUE);
매개 변수
nIndex
사용할 확인란 항목의 인덱스입니다.
bEnabled
항목의 사용 여부를 지정합니다.
CCheckListBox::GetCheck
지정된 확인란의 상태를 검색합니다.
int GetCheck(int nIndex);
매개 변수
nIndex
목록 상자에 포함된 확인란의 인덱스(0부터 시작하는 인덱스)입니다.
Return Value
지정한 확인란의 상태입니다. 다음 표에서는 가능한 값을 나열합니다.
값 | 설명 |
---|---|
BST_CHECKED |
확인란이 선택되어 있습니다. |
BST_UNCHECKED |
확인란이 선택되어 있지 않습니다. |
BST_INDETERMINATE |
확인란 상태가 확정되지 않습니다. |
CCheckListBox::GetCheckStyle
이 함수를 호출하여 검사 목록 상자의 스타일을 가져옵니다.
UINT GetCheckStyle();
Return Value
컨트롤 확인란의 스타일입니다.
설명
가능한 스타일에 대한 자세한 내용은 다음을 참조하세요 SetCheckStyle
.
CCheckListBox::IsEnabled
이 함수를 호출하여 항목을 사용할 수 있는지 여부를 확인합니다.
BOOL IsEnabled(int nIndex);
매개 변수
nIndex
항목의 인덱스입니다.
Return Value
항목이 활성화된 경우 0이 아닌 경우 그렇지 않으면 0입니다.
CCheckListBox::MeasureItem
기본이 아닌 스타일이 있는 검사 목록 상자가 만들어지면 프레임워크에서 호출됩니다.
virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);
매개 변수
lpMeasureItemStruct
구조체에 대한 긴 포인터입니다 MEASUREITEMSTRUCT
.
설명
기본적으로 이 멤버 함수는 아무 작업도 수행하지 않습니다. 이 멤버 함수를 재정의하고 구조를 입력하여 Windows에 MEASUREITEMSTRUCT
체크리스트 상자 항목의 차원을 알립니다. 스타일이 포함된 검사 목록 상자가 만들어 LBS_OWNERDRAWVARIABLE
지면 프레임워크는 목록 상자의 각 항목에 대해 이 멤버 함수를 호출합니다. 그렇지 않으면 이 멤버는 한 번만 호출됩니다.
CCheckListBox::OnGetCheckPosition
프레임워크는 이 함수를 호출하여 항목에서 확인란의 위치와 크기를 가져옵니다.
virtual CRect OnGetCheckPosition(
CRect rectItem,
CRect rectCheckBox);
매개 변수
rectItem
목록 항목의 위치 및 크기입니다.
rectCheckBox
항목 확인란의 기본 위치 및 크기입니다.
Return Value
항목 확인란의 위치 및 크기입니다.
설명
기본 구현은 확인란(rectCheckBox
)의 기본 위치와 크기만 반환합니다. 기본적으로 확인란은 항목의 왼쪽 위 모서리에 맞춰지고 표준 확인란 크기입니다. 오른쪽에 확인란을 선택하거나 더 크거나 작은 확인란을 원하는 경우가 있을 수 있습니다. 이러한 경우 재정의 OnGetCheckPosition
하여 항목 내의 확인란 위치와 크기를 변경합니다.
CCheckListBox::SetCheck
지정한 확인란의 상태를 설정합니다.
void SetCheck(
int nIndex,
int nCheck);
매개 변수
nIndex
목록 상자에 포함된 확인란의 인덱스(0부터 시작하는 인덱스)입니다.
nCheck
지정한 확인란의 단추 상태입니다. 가능한 값은 설명 섹션을 참조하세요.
설명
다음 표에서는 매개 변수에 사용할 수 있는 값을 나열합니다 nCheck
.
값 | 설명 |
---|---|
BST_CHECKED |
지정한 확인란을 선택합니다. |
BST_UNCHECKED |
지정한 확인란의 선택을 취소합니다. |
BST_INDETERMINATE |
지정한 확인란 상태를 확정되지 않은 상태로 설정합니다. 이 상태는 확인란 스타일 BS_AUTO3STATE 이 있는 BS_3STATE 경우에만 사용할 수 있습니다. 자세한 내용은 단추 스타일을 참조 하세요. |
CCheckListBox::SetCheckStyle
이 함수를 호출하여 검사 목록 상자에서 확인란의 스타일을 설정합니다.
void SetCheckStyle(UINT nStyle);
매개 변수
nStyle
확인란의 확인란 스타일을 결정합니다.
설명
유효한 스타일은 다음과 같습니다.
BS_CHECKBOX
BS_AUTOCHECKBOX
BS_AUTO3STATE
BS_3STATE
이러한 스타일에 대한 자세한 내용은 단추 스타일을 참조 하세요.