mfc cpropertysheet 예제

이 게시물은 기존 MFC 프로젝트에서 작업중이며 응용 프로그램에 탭된 대화 상자를 추가하려고 한다고 가정합니다. 이 예제는 Visual Studio 2008에서 만들어졌습니다. 여기에 다른 게시물의 대부분처럼, 여분의 종소리와 휘파람의 방법으로 많이없습니다, 당신이 시작하는 아주 간단한 예… VS2003 다운로드는 여기에서 확인할 수 있습니다. 지금까지는 좋았어요. 이제 확인, 취소 및 적용 단추에 대한 동작을 변경하고 싶습니다. 예를 들어 사용자가 확인 또는 취소 단추를 클릭하면 속성 시트를 닫는 대신 다른 작업을 수행할 수 있습니다. 다음은 런타임시 레이블을 변경하려면 탭 컨트롤에 대한 포인터를 구한 다음 탭 컨트롤의 SetItem 함수를 사용하는 데 사용할 수 있는 일반적인 템플릿입니다. 다음은 CPropertySheet가 CDialog에서 파생되지 않더라도 CPropertySheet 개체를 관리하는 것은 CDialog 개체를 관리하는 것과 같습니다.

예를 들어 속성 시트를 만들려면 생성자를 호출한 다음 모달 속성 시트에 DoModal을 호출하거나 모덜리스 속성 시트에 대해 만들기라는 두 부분으로 구성된 구성이 필요합니다. CPropertySheet에는 두 가지 유형의 생성자가 있습니다: CPropertySheet:::Construct 및 CPropertySheet::CPropertySheet. n스타일 속성 시트 제목의 스타일을 지정합니다. 스타일은 0 또는 PSH_PROPTITLE로 지정해야 합니다. 스타일이 PSH_PROPTITLE로 설정된 경우 캡션으로 지정된 텍스트 다음의 단어 “속성”이 나타납니다. 예를 들어 SetTitle(“단순”, PSH_PROPTITLE)을 호출하면 “단순 속성”의 속성 시트 캡션이 생성됩니다. 다음 예제에서는 Construct를 호출할 상황을 보여 줍니다. 탭 레이블이 있는 이미지를 사용하려면 먼저 탭 컨트롤에서 사용할 이미지가 있는 CImageList 클래스를 만들어야 합니다. CTabCtrl 클래스의 SetItem 메서드를 사용하면 항목의 이미지를 설정해야 합니다. 다음은 비동기 예외 처리 모델로 컴파일하는 경우 운영 체제에서 이 예외를 처리해야 합니다. 예외 처리 모델에 대한 자세한 내용은 /EH(예외 처리 모델)를 참조하십시오. 이 경우 캐치가 catch(…)와 같은 모든 예외를 처리하는 C++ try-catch 블록이 있는 cPropertySheet::DoModal에 대한 호출을 래핑하지 마십시오.

이 블록은 운영 체제에 대한 예외를 처리하고 예기치 않은 동작을 일으킵니다. 그러나 액세스 위반 예외가 운영 체제로 전달되는 특정 예외 유형 또는 구조화 된 예외 처리와 함께 C ++ 예외 처리를 안전하게 사용할 수 있습니다. 예를 들어 GetPageIndex를 사용하여 SetActivePage 또는 GetPage를 사용하기 위해 페이지 인덱스를 가져옵니다. 예를 들어 한 페이지에서 사용자의 작업으로 인해 다른 페이지가 활성 페이지가 되어야 하는 경우 SetActivePage를 사용합니다. 페이지의 UI 요소가 변경될 때 속성 대화 상자의 “적용” 버튼이 활성화됩니다.

Geplaatst in Geen categorie