다음을 통해 공유


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::DrawItemCCheckListBox::MeasureItem 해야 합니다.

대화 상자 템플릿에서 또는 코드에서 직접 검사 목록 상자를 만들 수 있습니다.

상속 계층 구조

CObject

CCmdTarget

CWnd

CListBox

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
목록 상자 크기 및 위치를 검사 지정합니다. 개체 또는 구조체일 CRectRECT 수 있습니다.

pParentWnd
검사 목록 상자의 부모 창(일반적으로 개체)을 CDialog 지정합니다. NULL이 아니어야 합니다.

nID
검사 목록 상자의 컨트롤 ID를 지정합니다.

Return Value

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

설명

두 단계로 개체를 CCheckListBox 생성합니다. 먼저 파생된 클래스를 정의한 CcheckListBox 다음 Windows Create검사 목록 상자를 초기화하여 호출합니다CCheckListBox. 샘플을 참조하세요 CCheckListBox::CCheckListBox .

실행되면 Create Windows는 검사WM_CREATEWM_NCCALCSIZElist-box 컨트롤에 , 및 WM_GETMINMAXINFO 메시지를 보냅니WM_NCCREATE다.

이러한 메시지는 기본적으로 기본 클래스의 OnNcCreate, OnCreate, OnNcCalcSizeOnGetMinMaxInfo 멤버 함수에 CWnd 의해 처리됩니다. 기본 메시지 처리를 확장하려면 파생 클래스에 메시지 맵을 추가하고 이전 메시지 처리기 멤버 함수를 재정의합니다. 예를 들어 새 클래스에 필요한 초기화를 수행하려면 재정 OnCreate의합니다.

검사list-box 컨트롤에 다음 창 스타일을 적용합니다.

  • 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 수행할 그리기 동작을 정의합니다.

기본적으로 이 함수는 왼쪽에 기본 크기 검사 상자가 있는 문자열 목록으로 구성된 기본 검사box 목록을 그립니다. 검사 상자 목록 크기는 에 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 검사list-box 항목의 차원을 알립니다. 검사 목록 상자가 스타일로 만들어지면 프레임워크는 목록 상자의 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_AUTO3STATEBS_3STATE경우에만 사용할 수 있습니다. 자세한 내용은 단추 스타일을 참조 하세요.

CCheckListBox::SetCheckStyle

이 함수를 호출하여 검사 목록 상자에서 검사 상자의 스타일을 설정합니다.

void SetCheckStyle(UINT nStyle);

매개 변수

nStyle
검사 목록 상자에서 검사 상자의 스타일을 결정합니다.

설명

유효한 스타일은 다음과 같습니다.

  • BS_CHECKBOX

  • BS_AUTOCHECKBOX

  • BS_AUTO3STATE

  • BS_3STATE

이러한 스타일에 대한 자세한 내용은 단추 스타일을 참조 하세요.

참고 항목

MFC 샘플 TSTCON
CListBox 클래스
계층 구조 차트