다음을 통해 공유


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

대화 상자 템플릿에서 또는 코드에서 직접 확인란을 만들 수 있습니다.

상속 계층 구조

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

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

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

Return Value

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

설명

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

실행되면 Windows는 WM_NCCREATE검사 목록-상자 컨트롤에 , WM_CREATEWM_NCCALCSIZEWM_GETMINMAXINFO 메시지를 보냅니 Create 다.

이러한 메시지는 기본적으로 기본 클래스의 OnNcCreate, OnCreate, OnNcCalcSizeOnGetMinMaxInfo 멤버 함수에 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

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

참고 항목

MFC 샘플 TSTCON
CListBox 수업
계층 구조 차트