- 이제야 알게된 Property Sheet... (Oh Shit!)
- 컴퓨터야그/자작
- 2009. 10. 28. 03:19
- it, Property Page, Property Sheet, Visual C++, 컴퓨터
VC++에서 가장 코딩하기 지저분한 것 중 하나가 Tab control이다.
넓다랗게 Tab control을 달아도 탭의 내용이 자동으로 변하지도 않아, 일일이 show/hide 해야되고, 각 컨트롤의 z-order를 일일이 정해줘야 한다.
그래서 난 보통 Tab control을 쓸 때는 아래 캡쳐 화면처럼 탭 영역만 쓰고 컨트롤은 창 자체에다 위치시켰다.
나만의 꼼수랄까...

그런데, 오늘 보니 Property Sheet이란 게 있더라.
그냥 제어판에서 많이 사용하는 탭 컨트롤이더라.
(솔까말, 난 제어판 화면을 보며 언제나 대단하단 생각을 했었다. 어떻게 이렇게 깔끔하게 컨트롤을 배치할 수 있었을까?)
Property Sheet는 Property Page를 여러개 관리할 수 있는데, 이 Property Page는 CDialog를 상속받은 놈이란 거...
즉, CDialog를 그린 뒤에 베이스 클래스만 슬쩍 CPropertyPage로 바꿔준 뒤 CPropertySheet에 AddPage() 하면 된다.
코드구루: Creating a Property Sheet Inside a Dialog (Property Sheet을 Dialog 위에 붙이는 방법)
FunctionX: Property Sheets and Property Pages (단순히 Property Sheet을 만드는 방법)
특히 코드구루의 글은 1998년의 글이니 11년 전의 글이다.
난 지금까지 뭐하고 산 거냐...
넓다랗게 Tab control을 달아도 탭의 내용이 자동으로 변하지도 않아, 일일이 show/hide 해야되고, 각 컨트롤의 z-order를 일일이 정해줘야 한다.
그래서 난 보통 Tab control을 쓸 때는 아래 캡쳐 화면처럼 탭 영역만 쓰고 컨트롤은 창 자체에다 위치시켰다.
나만의 꼼수랄까...

탭 영역만 스브적 사용...
그런데, 오늘 보니 Property Sheet이란 게 있더라.
그냥 제어판에서 많이 사용하는 탭 컨트롤이더라.
(솔까말, 난 제어판 화면을 보며 언제나 대단하단 생각을 했었다. 어떻게 이렇게 깔끔하게 컨트롤을 배치할 수 있었을까?)
Property Sheet는 Property Page를 여러개 관리할 수 있는데, 이 Property Page는 CDialog를 상속받은 놈이란 거...
즉, CDialog를 그린 뒤에 베이스 클래스만 슬쩍 CPropertyPage로 바꿔준 뒤 CPropertySheet에 AddPage() 하면 된다.
코드구루: Creating a Property Sheet Inside a Dialog (Property Sheet을 Dialog 위에 붙이는 방법)
FunctionX: Property Sheets and Property Pages (단순히 Property Sheet을 만드는 방법)
특히 코드구루의 글은 1998년의 글이니 11년 전의 글이다.
난 지금까지 뭐하고 산 거냐...
'컴퓨터야그 > 자작' 카테고리의 다른 글
Visual C++ 에서 실행파일의 폴더 얻는 법 (0) | 2009.11.07 |
---|---|
메르카토르 도법 지도 위에 최단경로를 그리는 프로그램 (7) | 2009.11.05 |
이제야 알게된 Property Sheet... (Oh Shit!) (11) | 2009.10.28 |
디카 메모리가 부족하다고 풍경을 마음에 담을 순 없다! (개궁극 버전) (2) | 2009.10.14 |
C++로 풀어본 아인슈타인의 퍼즐 (19) | 2009.10.09 |
디카 사진의 시간대를 변경해주는 프로그램 공개 (업데이트) (10) | 2009.09.28 |
-
-
naturis 2009.10.29 02:51
vc++ , 코드구루... 몇 년만에 들어보는 이름인지... 코딩세계를 떠난지 오래된 일이지만 역시나 코딩은 듣는것만으로도 짜증나는 일이네요 -_-;
-
-
oneniner 2009.10.29 17:40
헉~ 나는 첨부터 이걸로 해서리 나중에 탭콘트롤이 더 힘들었다는~ ㅋㅋㅋ
대신 이놈은 Apply 에 대한 처리를 해줘야 한다는...
처리를 안해주면 다이얼로그에 들어간 것들에 대한 처리가 좀 애매하다는... -
초보 개발자 2010.03.15 18:39
안녕하세요^^ 구글링하다가 쓰신 글을 보고 사막에서 오아시스를 발견한 느낌을 받고 한달음에 방문했습니다.
제가 지금 CDialog based로 된 다이얼로그를 다 디자인해 놓고, 나중에서야 Property Sheet의 필요성을 깨달아
살짝쿵 base class만 바꾸려고 하는데요,, 근데 어떻게 바꾸나요...?;; ㅠㅠ 상속하는 클래스만 바꾸면, 생성자들이 맞지않아 에러가 납니다.. 생성자들도 바꾸자니 이미 구현해놓은 DDX 컨트롤들이 에러가 납니다.. 아무리 구글링해봐도 base class를 바꾸는 방법은 안나옵니다.. 목이 마를대로 마른 영혼에게 단비를 내려주시면 정말 감사하겠습니다.ㅠㅠ -
Recent comment