이제야 알게된 Property Sheet... (Oh Shit!)

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년 전의 글이다.
난 지금까지 뭐하고 산 거냐...