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
.
실행되면 Create
Windows는 검사WM_CREATE
WM_NCCALCSIZE
list-box 컨트롤에 , 및 WM_GETMINMAXINFO
메시지를 보냅니WM_NCCREATE
다.
이러한 메시지는 기본적으로 기본 클래스의 OnNcCreate
, OnCreate
, OnNcCalcSize
및 OnGetMinMaxInfo
멤버 함수에 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_AUTO3STATE 인 BS_3STATE 경우에만 사용할 수 있습니다. 자세한 내용은 단추 스타일을 참조 하세요. |
CCheckListBox::SetCheckStyle
이 함수를 호출하여 검사 목록 상자에서 검사 상자의 스타일을 설정합니다.
void SetCheckStyle(UINT nStyle);
매개 변수
nStyle
검사 목록 상자에서 검사 상자의 스타일을 결정합니다.
설명
유효한 스타일은 다음과 같습니다.
BS_CHECKBOX
BS_AUTOCHECKBOX
BS_AUTO3STATE
BS_3STATE
이러한 스타일에 대한 자세한 내용은 단추 스타일을 참조 하세요.
참고 항목
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기