CAFE

MFC/COM/멀티미디어

[MFC][26기 손정훈] Property Sheet

작성자26기 손정훈|작성시간13.08.29|조회수1,048 목록 댓글 0

문서번호

 

보존기간

영구보존

보고일자

2013-08-27

학습 및 문서작성 시간

1시간30

 

 

`

 

 

 

 

Property Sheet

 

손정훈

 

 

 


프로퍼티 시트

여러 개의 탭으로 이루어진 페이지들을 함께 사지고 있는 일종의 대화상자

위 그림과 같이 각각의 탭을 프로퍼티 페이지라 한다.

이들을 묶어서 가지고 있는 윈도우를 프로퍼티 시트라 한다.

 

 

위저드 형식 프로퍼티 시트

 

위저드 형식의 프로퍼티 시트는 위 그림과 같이 뒤로,다음 버튼을 가지고 있다.

이 버튼들을 누를 때마다 프로퍼티 페이지가 한페이지씩 넘어감

주로 각각의 페이지가 순차적으로 입력되어야 하는경우에 사용된다.


 

 

상속 

 

CPropertySheet클래스는 겉보기엔 대화상자처럼 보이지만

CDialog에서 상속받지 않아 만드는 방법이 대화상자와 다릅니다.

CPropertyPage CDialog에서 상속받아 대화상자를 만드는 방법 그대로 이용할 수 있습니다.


 

 

간단한 실습

1.     MFC기반 프로젝트를 생성한다 (작성자는 Property Test라는 이름으로 만듦)

2.     프로퍼티 시트 만들기
해당 프로젝트에 CPropertySheet를 기본클래스로 하는 MFC클래스를 만들어 준다. (작성자는 CSheetDlg라는 이름으로 만듦)



3.     프로퍼티 페이지 만들기
프로퍼티 시트에 추가할 프로퍼티 페이지들을 만들어 주기 위해

해당 프로젝트에 CPropertyPage를 기본클래스로 하는 MFC클래스를 만들어 준다. (작성자는 CPage1, CPage2, CPage3라는 이름으로 만듦)

 


4.     각각의 페이지들의 대화상자 리소스를 디자인한다.


 

5.     프로퍼티 시트에 프로퍼티 페이지 등록하기
프로퍼티 시트클래스의 헤더파일에서 등록하고자 하는 페이지들을 include 해준후
변수를 선언해준다.


프로퍼티 시트 클래스의 CPP파일에서 생성자 함수안에 AddPage(&선언한 페이지 변수)함수를 호출해준다.

생성자 함수가 두가지로 오버로딩 되어 있으므로 양쪽모두에 해준다.

 

  

6.     메인 Dialog에 버튼을 추가후 버튼클릭시 프로퍼티 시트가 출력되도록 코딩한다.


7.      각 프로퍼티 페이지에 멤버 변수를 지정해주고 입력된 결과들을 참조하여 리턴해주는 함수를 프로퍼티 시트에 만들어 준다

 

8.      프로퍼티시트의 확인버튼을 눌렀을 때 입력결과를 메시지 박스로 띄워주도록 코드를 조금 수정해준다.

 

9.     결과

 

 


 

위저드 형식으로 바꿔보기

1.     프로퍼티 시트를 생성하는곳에 SetWizardMode(); 함수를 이용하여 모드를 변경 해준다.

 

 


2.     모드는 위저드 모드로 변경되었지만 첫번째 페이지에서 뒤로버튼과 마지막 페이지에서 다음 버튼이 필요 없음에도 활성화가 되어있다.
각 페이지클래스에서 페이지가 바뀌어 새로운 페이지가 프로퍼 시트에 출력될 때 마다 호출되는 OnSetActive함수를 그림과 같이 재정의 해준다
.

      SetWizardButtons의 매개변수

PSWIZB_BACK

뒤로 버튼 활성화

PSWIZB_NEXT

다음 버튼 활성화

PSWIZB_FINISH

다음 버튼을 감추고 마침 버튼 출력

PSWIZB_DISABLEDFINISH

비활성화된 마침 버튼 출력

 

 

3.     결과



다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
맨위로

카페 검색

카페 검색어 입력폼