다음을 통해 공유


CMFCPropertySheet 클래스

CMFCPropertySheet 클래스는 각 속성 페이지가 페이지 탭, 도구 모음 단추, 트리 컨트롤 노드 또는 목록 항목으로 표시되는 속성 시트를 지원합니다.

구문

class CMFCPropertySheet : public CPropertySheet

멤버

공용 생성자

속성 설명
CMFCPropertySheet::CMFCPropertySheet CMFCPropertySheet 개체를 생성합니다.
CMFCPropertySheet::~CMFCPropertySheet 소멸자

공용 메서드

이름 설명
CMFCPropertySheet::AddPage 속성 시트에 페이지를 추가합니다.
CMFCPropertySheet::AddPageToTree 트리 컨트롤에 새 속성 페이지를 추가합니다.
CMFCPropertySheet::AddTreeCategory 트리 컨트롤에 새 노드를 추가합니다.
CMFCPropertySheet::EnablePageHeader 각 페이지 위쪽에서 사용자 지정 머리글을 그릴 공간을 예약합니다.
CMFCPropertySheet::GetHeaderHeight 현재 머리글의 높이를 검색합니다.
CMFCPropertySheet::GetLook 현재 속성 시트의 모양을 지정하는 열거형 값을 검색합니다.
CMFCPropertySheet::GetNavBarWidth 탐색 모음의 너비(픽셀)를 검색합니다.
CMFCPropertySheet::GetTab 현재 속성 시트 컨트롤을 지원하는 내부 탭 컨트롤 개체를 검색합니다.
CMFCPropertySheet::GetThisClass 프레임워크에서 이 클래스 형식과 연결된 CRuntimeClass 개체에 대한 포인터를 가져오는 데 사용됩니다.
CMFCPropertySheet::InitNavigationControl 현재 속성 시트 컨트롤의 모양을 초기화합니다.
CMFCPropertySheet::OnActivatePage 속성 페이지를 사용하도록 설정한 경우 프레임워크에서 호출됩니다.
CMFCPropertySheet::OnDrawPageHeader 사용자 지정 속성 페이지 머리글을 그리기 위해 프레임워크에서 호출됩니다.
CMFCPropertySheet::OnInitDialog WM_INITDIALOG 메시지를 처리합니다. (재정의 CPropertySheet::OnInitDialog.)
CMFCPropertySheet::OnRemoveTreePage 트리 컨트롤에서 속성 페이지를 제거하기 위해 프레임워크에서 호출됩니다.
CMFCPropertySheet::PreTranslateMessage TranslateMessage 및 DispatchMessage Windows 함수로 디스패치되기 전에 창 메시지를 변환합니다. ( CPropertySheet::PreTranslateMessage을 재정의합니다.)
CMFCPropertySheet::RemoveCategory 트리 컨트롤에서 노드를 제거합니다.
CMFCPropertySheet::RemovePage 속성 시트에서 속성 페이지를 제거합니다.
CMFCPropertySheet::SetIconsList Outlook 창의 탐색 컨트롤에서 사용되는 이미지 목록을 지정합니다.
CMFCPropertySheet::SetLook 속성 시트의 모양을 지정합니다.

설명

CMFCPropertySheet 클래스는 속성 시트(탭 대화 상자라고도 함)를 나타냅니다. CMFCPropertySheet 클래스는 다양한 방식으로 속성 페이지를 표시할 수 있습니다.

애플리케이션에서 CMFCPropertySheet 클래스를 사용하려면 다음 단계를 수행합니다.

  1. CMFCPropertySheet 클래스에서 클래스를 파생시키고 클래스 이름(예: CMyPropertySheet)을 지정합니다.

  2. 각 속성 페이지에 대한 CMFCPropertyPage 개체를 생성합니다.

  3. CMyPropertySheet 생성자에서 CMFCPropertySheet::SetLook 메서드를 호출합니다. 이 메서드의 매개 변수는 속성 페이지가 속성 시트의 위쪽이나 왼쪽에 있는 탭, Microsoft OneNote 속성 시트 스타일의 탭, Microsoft Outlook 도구 모음 컨트롤의 단추, 트리 컨트롤의 노드 또는 속성 시트의 왼쪽에 있는 항목 목록으로 표시되도록 지정합니다.

  4. Microsoft Outlook 도구 모음 스타일로 속성 시트를 만드는 경우 CMFCPropertySheet::SetIconsList 메서드를 호출하여 이미지 목록을 속성 페이지와 연결합니다.

  5. 각 속성 페이지에 대해 CMFCPropertySheet::AddPage 메서드를 호출합니다.

  6. CMFCPropertySheet 컨트롤을 만들고 해당 DoModal 메서드를 호출합니다.

그림

다음 그림에서는 포함된 Microsoft Outlook 도구 모음 스타일의 속성 시트를 보여 줍니다. Outlook 도구 모음은 속성 시트의 왼쪽에 나타납니다.

CMFCPropertySheet 색 컨트롤입니다.

다음 그림에서는 CMFCPropertyGridCtrl 클래스 개체를 포함하는 속성 시트를 보여 줍니다. 해당 개체는 표준 공용 컨트롤 속성 시트 스타일의 속성 시트입니다.

CMFCPropertySheet 목록 및 속성 컨트롤입니다.

다음 그림에서는 트리 컨트롤 스타일의 속성 시트를 보여 줍니다.

속성 트리입니다.

상속 계층 구조

CObject

CCmdTarget

CWnd

CPropertySheet

CMFCPropertySheet

요구 사항

헤더: afxpropertysheet.h

CMFCPropertySheet::AddPage

속성 시트에 페이지를 추가합니다.

void AddPage(CPropertyPage* pPage);

매개 변수

pPage
[in] 페이지 개체에 대한 포인터입니다. 이 매개 변수는 NULL일 수 없습니다.

설명

이 메서드는 지정한 속성 페이지를 속성 시트에서 가장 오른쪽 탭으로 추가합니다. 따라서 이 메서드를 사용하여 왼쪽에서 오른쪽 순서로 페이지를 추가합니다.

속성 시트가 Microsoft Outlook 스타일인 경우 프레임워크는 속성 시트 왼쪽에 탐색 단추 목록을 표시합니다. 이 메서드는 속성 페이지를 추가한 후 해당 단추를 목록에 추가합니다. 속성 페이지를 표시하려면 해당 단추를 클릭합니다. 속성 시트의 스타일에 대한 자세한 내용은 CMFCPropertySheet::SetLook을 참조하세요.

CMFCPropertySheet::AddPageToTree

트리 컨트롤에 새 속성 페이지를 추가합니다.

void AddPageToTree(
    CMFCPropertySheetCategoryInfo* pCategory,
    CMFCPropertyPage* pPage,
    int nIconNum=-1,
    int nSelIconNum=-1);

매개 변수

pCategory
[in] 상위 트리 노드에 대한 포인터이거나, 지정된 페이지를 최상위 노드와 연결하는 NULL입니다. CMFCPropertySheet::AddTreeCategory 메서드를 호출하여 이 포인터를 가져옵니다.

pPage
[in] 속성 페이지 개체에 대한 포인터입니다.

nIconNum
[in] 아이콘의 인덱스(0부터 시작하는 인덱스) 또는 아이콘이 사용되지 않는 경우 -1입니다. 페이지를 선택하지 않으면 트리 컨트롤 속성 페이지 옆에 아이콘이 표시됩니다. 기본값은 -1입니다.

nSelIconNum
[in] 아이콘의 인덱스(0부터 시작하는 인덱스) 또는 아이콘이 사용되지 않는 경우 -1입니다. 페이지를 선택하면 트리 컨트롤 속성 페이지 옆에 아이콘이 표시됩니다. 기본값은 -1입니다.

설명

이 메서드는 트리 컨트롤의 리프로 속성 페이지를 추가합니다. 속성 페이지를 추가하려면 개체를 CMFCPropertySheet 만들고 look 매개 변수가 설정된 CMFCPropertySheet::SetLook 메서드CMFCPropertySheet::PropSheetLook_Tree호출한 다음 이 메서드를 사용하여 속성 페이지를 추가합니다.

CMFCPropertySheet::AddTreeCategory

트리 컨트롤에 새 노드를 추가합니다.

CMFCPropertySheetCategoryInfo* AddTreeCategory(
    LPCTSTR lpszLabel,
    int nIconNum=-1,
    int nSelectedIconNum=-1,
    const CMFCPropertySheetCategoryInfo* pParentCategory=NULL);

매개 변수

lpszLabel
[in] 노드의 이름입니다.

nIconNum
[in] 아이콘의 인덱스(0부터 시작하는 인덱스) 또는 아이콘이 사용되지 않는 경우 -1입니다. 페이지를 선택하지 않으면 트리 컨트롤 속성 페이지 옆에 아이콘이 표시됩니다. 기본값은 -1입니다.

nSelectedIconNum
[in] 아이콘의 인덱스(0부터 시작하는 인덱스) 또는 아이콘이 사용되지 않는 경우 -1입니다. 페이지를 선택하면 트리 컨트롤 속성 페이지 옆에 아이콘이 표시됩니다. 기본값은 -1입니다.

pParentCategory
[in] 상위 트리 노드에 대한 포인터이거나, 지정된 페이지를 최상위 노드와 연결하는 NULL입니다. CMFCPropertySheet::AddTreeCategory 메서드를 사용하여 이 매개 변수를 설정합니다.

Return Value

트리 컨트롤의 새 노드에 대한 포인터입니다.

설명

이 메서드를 사용하여 범주라고도 하는 새 노드를 트리 컨트롤에 추가합니다. 노드를 추가하려면 개체를 CMFCPropertySheet 만들고 look 매개 변수가 설정된 CMFCPropertySheet::SetLook 메서드CMFCPropertySheet::PropSheetLook_Tree호출한 다음 이 메서드를 사용하여 노드를 추가합니다.

CMFCPropertySheet::AddPageToTreeCMFCPropertySheet::AddTreeCategory에 대한 후속 호출에서 이 메서드의 반환 값을 사용합니다.

CMFCPropertySheet::CMFCPropertySheet

CMFCPropertySheet 개체를 생성합니다.

CMFCPropertySheet(
    UINT nIDCaption,
    CWnd* pParentWnd=NULL,
    UINT iSelectPage=0);

CMFCPropertySheet(
    LPCTSTR pszCaption,
    CWnd* pParentWnd=NULL,
    UINT iSelectPage=0);

매개 변수

pszCaption
[in] 속성 시트 캡션을 포함하는 문자열입니다. NULL일 수 없습니다.

nIDCaption
[in] 속성 시트 캡션을 포함하는 리소스 ID입니다.

pParentWnd
[in] 속성 시트의 부모 창에 대한 포인터이거나, 부모 창이 애플리케이션의 주 창인 경우 NULL입니다. 기본값은 NULL입니다.

iSelectPage
[in] 상위 속성 페이지의 인덱스(0부터 시작하는 인덱스)입니다. 기본값은 0입니다.

설명

자세한 내용은 CPropertySheet::CPropertySheet 생성자에 대한 매개 변수를 참조하세요.

CMFCPropertySheet::EnablePageHeader

각 페이지 위쪽에서 사용자 지정 머리글을 그릴 공간을 예약합니다.

void EnablePageHeader(int nHeaderHeight);

매개 변수

nHeaderHeight
[in] 머리글의 높이(픽셀)입니다.

설명

nHeaderHeight 매개 변수 값을 사용하여 사용자 지정 헤더를 그리려면 CMFCPropertySheet::OnDrawPageHeader 메서드를 재정합니다.

CMFCPropertySheet::GetHeaderHeight

현재 머리글의 높이를 검색합니다.

int GetHeaderHeight() const;

Return Value

머리글의 높이(픽셀)입니다.

설명

이 메서드를 호출하기 전에 CMFCPropertySheet::EnablePageHeader 메서드를 호출합니다.

CMFCPropertySheet::GetLook

현재 속성 시트의 모양을 지정하는 열거형 값을 검색합니다.

PropSheetLook GetLook() const;

Return Value

속성 시트의 모양을 지정하는 열거형 값 중 하나입니다. 가능한 값 목록은 CMFCPropertySheet::SetLook설명 섹션에 있는 열거형 테이블을 참조하세요.

CMFCPropertySheet::GetNavBarWidth

탐색 모음의 너비를 가져옵니다.

int GetNavBarWidth() const;

Return Value

탐색 모음의 너비(픽셀)입니다.

CMFCPropertySheet::GetTab

현재 속성 시트 컨트롤을 지원하는 내부 탭 컨트롤 개체를 검색합니다.

CMFCTabCtrl& GetTab() const;

Return Value

내부 탭 컨트롤 개체입니다.

설명

트리 컨트롤, 탐색 단추 목록 또는 탭 페이지 집합과 같은 다양한 스타일로 표시되도록 속성 시트를 설정할 수 있습니다.

이 메서드를 호출하기 전에 CMFCPropertySheet::SetLook 메서드를 호출하여 속성 시트 컨트롤의 모양을 설정합니다. 그런 다음 CMFCPropertySheet::InitNavigationControl 메서드를 호출하여 내부 탭 컨트롤 개체를 초기화합니다. 이 메서드를 사용하여 탭 컨트롤 개체를 검색한 다음 해당 개체를 사용하여 속성 시트의 탭을 사용합니다.

이 메서드는 속성 시트 컨트롤이 Microsoft OneNote 스타일에 표시되도록 설정되지 않은 경우 디버그 모드에서 어설션됩니다.

CMFCPropertySheet::InitNavigationControl

현재 속성 시트 컨트롤의 모양을 초기화합니다.

virtual CWnd* InitNavigationControl();

Return Value

속성 시트 컨트롤의 창에 대한 포인터입니다.

설명

속성 시트 컨트롤은 탭 페이지 집합, 트리 컨트롤 또는 탐색 단추 목록과 같은 여러 가지 형태로 나타날 수 있습니다. CMFCPropertySheet::SetLook 메서드를 사용하여 속성 시트 컨트롤의 모양을 지정합니다.

CMFCPropertySheet::OnActivatePage

속성 페이지를 사용하도록 설정한 경우 프레임워크에서 호출됩니다.

virtual void OnActivatePage(CPropertyPage* pPage);

매개 변수

pPage
[in] 활성화된 속성 페이지를 나타내는 속성 페이지 개체에 대한 포인터입니다.

설명

기본적으로 이 메서드는 활성화된 속성 페이지가 보기로 스크롤되도록 합니다. 현재 속성 시트의 스타일에 Microsoft Outlook 창이 있는 경우 이 메서드는 해당 Outlook 단추를 선택된 상태로 설정합니다.

CMFCPropertySheet::OnDrawPageHeader

사용자 지정 속성 페이지의 헤더를 그리기 위해 프레임워크에서 호출됩니다.

virtual void OnDrawPageHeader(
    CDC* pDC,
    int nPage,
    CRect rectHeader);

매개 변수

pDC
[in] 디바이스 컨텍스트에 대한 포인터입니다.

nPage
[in] 0부터 시작하는 속성 페이지 번호입니다.

rectHeader
[in] 헤더를 그릴 위치를 지정하는 경계 사각형입니다.

설명

기본적으로 이 메서드는 아무것도 수행하지 않습니다. 이 메서드를 재정의 하는 경우 프레임워크에서 이 메서드를 호출하기 전에 CMFCPropertySheet::EnablePageHeader 메서드를 호출합니다.

CMFCPropertySheet::OnRemoveTreePage

트리 컨트롤에서 속성 페이지를 제거하기 위해 프레임워크에서 호출됩니다.

virtual BOOL OnRemoveTreePage(CPropertyPage* pPage);

매개 변수

pPage
[in] 제거할 속성 페이지를 나타내는 속성 페이지 개체에 대한 포인터입니다.

Return Value

이 메서드가 성공하면 TRUE입니다. 그렇지 않으면 FALSE입니다.

CMFCPropertySheet::RemoveCategory

트리 컨트롤에서 노드를 제거합니다.

void RemoveCategory(CMFCPropertySheetCategoryInfo* pCategory);

매개 변수

pCategory
[in] 제거할 범주(노드)에 대한 포인터입니다.

설명

이 메서드를 사용하여 트리 컨트롤에서 범주라고도 하는 노드를 제거합니다. CMFCPropertySheet::AddTreeCategory 메서드를 사용하여 트리 컨트롤에 노드를 추가합니다.

CMFCPropertySheet::RemovePage

속성 시트에서 속성 페이지를 제거합니다.

void RemovePage(CPropertyPage* pPage);
void RemovePage(int nPage);

매개 변수

pPage
[in] 제거할 속성 페이지를 나타내는 속성 페이지 개체에 대한 포인터입니다. NULL일 수 없습니다.

nPage
[in] 제거할 페이지의 인덱스(0부터 시작하는 인덱스)입니다.

설명

이 메서드는 지정된 속성 페이지를 제거하고 연결된 창을 삭제합니다. pPage 매개 변수가 지정하는 속성 페이지 개체는 CMFCPropertySheet 창을 닫을 때까지 제거되지 않습니다.

CMFCPropertySheet::SetIconsList

Outlook 창의 탐색 컨트롤에서 사용되는 이미지 목록을 지정합니다.

BOOL SetIconsList(
    UINT uiImageListResID,
    int cx,
    COLORREF clrTransparent=RGB(255, 0, 255));
void SetIconsList(HIMAGELIST hIcons);

매개 변수

uiImageListResID
[in] 이미지 목록의 리소스 ID입니다.

cx
[in] 이미지 목록의 아이콘 너비(픽셀)입니다.

clrTransparent
[in] 투명한 이미지 색입니다. 이 색인 이미지의 부분은 투명합니다. 기본값은 색 magenta, RGB(255,0,255)입니다.

hIcons
[in] 기존 이미지 목록에 대한 핸들입니다.

Return Value

첫 번째 메서드 오버로드 구문에서 이 메서드가 성공하면 TRUE입니다. 그렇지 않으면 FALSE입니다.

설명

속성 시트가 Microsoft Outlook 스타일인 경우 프레임워크는 속성 시트 왼쪽에 Outlook 창 컨트롤이라는 탐색 단추 목록을 표시합니다. Outlook 창 컨트롤에서 사용할 이미지 목록을 설정하려면 이 메서드를 사용합니다.

이 메서드 를 지원하는 메서드에 대한 자세한 내용은 CImageList::Create and CImageList::Add를 참조하세요. 속성 시트의 스타일을 설정하는 방법에 대한 자세한 내용은 CMFCPropertySheet::SetLook을 참조하세요.

CMFCPropertySheet::SetLook

속성 시트의 모양을 지정합니다.

void SetLook(
    PropSheetLook look,
    int nNavControlWidth=100);

매개 변수

일견
[in] 속성 시트의 모양을 지정하는 열거형 값 중 하나입니다. 속성 시트의 기본 스타일은 .입니다 CMFCPropertySheet::PropSheetLook_Tabs. 자세한 내용은 이 항목의 설명 섹션에 있는 표를 참조하세요.

nNavControlWidth
[in] 탐색 컨트롤의 너비(픽셀)입니다. 기본값은 100입니다.

설명

속성 시트를 기본값이 아닌 다른 스타일로 표시하려면 속성 시트 창을 만들기 전에 이 메서드를 호출합니다.

다음 표에서는 look 매개 변수에 지정할 수 있는 열거형 값을 나열합니다.

설명
CMFCPropertySheet::PropSheetLook_Tabs (기본값) 각 속성 페이지의 탭을 표시합니다. 탭은 속성 시트의 맨 위에 표시되며 한 행에 맞는 탭보다 더 많은 탭이 있는 경우 누적됩니다.
CMFCPropertySheet::PropSheetLook_OutlookBar 속성 시트의 왼쪽에 있는 Microsoft Outlook 표시줄의 스타일로 탐색 단추 목록을 표시합니다. 목록의 각 단추는 속성 페이지에 해당합니다. 목록의 표시 영역에 맞는 단추보다 많은 단추가 있는 경우 프레임워크에 스크롤 화살표가 표시됩니다.
CMFCPropertySheet::PropSheetLook_Tree 속성 시트의 왼쪽에 트리 컨트롤을 표시합니다. 트리 컨트롤의 각 부모 또는 자식 노드는 속성 페이지에 해당합니다. 트리 컨트롤의 표시되는 영역에 맞는 것보다 많은 노드가 있는 경우 프레임워크는 스크롤 화살표를 표시합니다.
CMFCPropertySheet::PropSheetLook_OneNoteTabs 각 속성 페이지에 대한 탭을 Microsoft OneNote 스타일로 표시합니다. 프레임워크는 속성 시트의 맨 위에 탭을 표시하고, 한 행에 맞는 탭보다 많은 탭이 있는 경우 스크롤 화살표를 표시합니다.
CMFCPropertySheet::PropSheetLook_List 속성 시트의 왼쪽에 목록을 표시합니다. 각 목록 항목은 속성 페이지에 해당합니다. 목록의 표시 영역에 맞는 것보다 많은 목록 항목이 있는 경우 프레임워크에 스크롤 화살표가 표시됩니다.

참고 항목

계층 구조 차트
클래스
CMFCPropertyPage 클래스
CMFCOutlookBar 클래스