CTabCtrl 與所有控件,TCN_SELCHANGE 以 ShowWindow 切換。CPropertyPage 衍生類,CPropertySheet::DoModal 顯示。
CMySheet,OnInitDialog 擴大視窗、以 Create 動態建立按鈕。
CPropertySheet m_sheet、各頁 CPropertyPage 實例。OnInitDialog 呼叫 m_sheet.Create(this, WS_CHILD|WS_VISIBLE, WS_EX_CONTROLPARENT),再 SetWindowPos 定位。
CDialog(非 CPropertyPage),資源設為 Child/No Border。CTabSheet 內部陣列管理頁面指標、資源 ID、標題。AddPage(title, pDialog, IDD) 登記,Show() 建立頁面與標籤,SetRect() 計算頁面區域。OnLButtonDown 處理標籤切換顯隱。m_sheet.AddPage(_T("tab1"), &m_page1, IDD_DIALOG1); m_sheet.Show();方案五結合了設計器友善、封裝完整、通知處理方便(可再對映 TCN_SELCHANGE)等優點,最適合實務專案。