cpropertysheet 예제

속성 시트 대화 상자의 쉬운 예는 Windows 탐색기에서 드라이브의 속성 대화 상자입니다. 이 대화 상자를 보는 단계는 모든 드라이브를 ”마우스 오른쪽”으로 클릭하고 컨텍스트 메뉴에서 ”속성”을 클릭하는 것입니다. 아래 이미지와 같은 대화 상자가 열립니다. 속성 시트 대화 상자입니다. 여기에는 여러 속성 페이지가 포함되어 있으며 ”일반” 페이지가 기본 선택된 페이지입니다. 페이지의 UI 요소가 변경될 때 속성 대화 상자의 ”적용” 버튼이 활성화됩니다. 예를 들어 텍스트 상자에 새 빨간색 값을 입력하면 적용 Button이 활성화됩니다. 적용 버튼을 클릭하면 변경 사항이 부모에게 알려드립니다. 이 경우 사용자가 입력하거나 변경한 데이터를 이 속성 페이지를 시작한 상위 대화 상자로 보냅니다.

실제 상황에서 적용 버튼은 즉시 응용 프로그램에 설정을 적용합니다. 따라서 확인을 클릭하기 전에 사용자는 적용 버튼을 클릭하여 변경된 설정의 효과를 관찰할 수 있습니다. 여러 매개 변수가 있는 경우(예: 배열을 사용하는 경우) CPropertySheet 대신 Construct를 사용합니다. 속성 시트를 사용하는 방법에 대한 예는 MFC 일반 샘플 PROPDLG를 참조하십시오. 우리는 이전 두 동영상에 표시된 것과 동일한 절차를 따라 예제의 두 번째 페이지를 만듭니다. 이제 속성 대화 상자에 대한 속성 페이지1 및 속성 페이지2가 준비되었습니다. 두 번째 속성 페이지의 디자인은 다음과 같습니다: 이 예제는 C++ 래핑된 클래스의 도움을 받아 입니다. CPropertyPage 및 CPropertySheet실제로 래핑 몇 가지 기본 데이터 구조. 다음 섹션에서는 이러한 데이터 구조를 볼 수 있습니다. 예를 들어 한 페이지에서 사용자의 작업으로 인해 다른 페이지가 활성 페이지가 되어야 하는 경우 SetActivePage를 사용합니다. CPropertySheet는 CDialog에서 파생되지 않더라도 CPropertySheet 개체를 관리하는 것은 CDialog 개체를 관리하는 것과 같습니다.

예를 들어 속성 시트를 만들려면 생성자를 호출한 다음 모달 속성 시트에 DoModal을 호출하거나 모덜리스 속성 시트에 대해 만들기라는 두 부분으로 구성된 구성이 필요합니다. CPropertySheet에는 두 가지 유형의 생성자가 있습니다: CPropertySheet:::Construct 및 CPropertySheet::CPropertySheet. 비동기 예외 처리 모델로 컴파일하는 경우 운영 체제에서 이 예외를 처리해야 합니다. 예외 처리 모델에 대한 자세한 내용은 /EH(예외 처리 모델)를 참조하십시오. 이 경우 캐치가 catch(…)와 같은 모든 예외를 처리하는 C++ try-catch 블록이 있는 cPropertySheet::DoModal에 대한 호출을 래핑하지 마십시오.