自分好みのプロパティーシートを作りたいなら、自分でダイアログの上にモードレスのダイアログを張る方がいい。
ベースダイアログに CTabCtrl をつけて、そのタブコントロールで貼り付けたダイアログを切り替える。
BOOL CMyDialogBase::OnInitDialog()
{
CDialog::OnInitDialog();
TC_ITEM tc;
tc.mask = TCIF_TEXT;
tc.pszText = "2次元表示操作パネル";
m_tab.InsertItem(0, &tc); // m_tab はTabctrl
m_pDlgPP2D = new CDialog;
m_pDlgPP2D->Create(IDD_PP2D, this);
m_pDlgPP2D->ShowWindow(SW_SHOW);
m_pDlgPP2D->SetWindowPos(...);
tc.pszText = "3次元表示操作パネル";
m_tab.InsertItem(1, &tc);
m_pDlgPP3D = new CDialog;
m_pDlgPP3D->Create(IDD_PP3D, this);
m_pDlgPP3D->ShowWindow(SW_HIDE);
m_pDlgPP3D->SetWindowPos(...);
return TRUE;
}
// Tab Ctrl の選択が変わったら
void CDlgViewCtrl::OnSelchangeTab(NMHDR* pNMHDR, LRESULT* pResult)
{
switch (m_tab.GetCurSel())
{
case 0:
m_pDlgPP2D->ShowWindow(SW_SHOW);
m_pDlgPP3D->ShowWindow(SW_HIDE);
break;
case 1:
m_pDlgPP2D->ShowWindow(SW_HIDE);
m_pDlgPP3D->ShowWindow(SW_SHOW);
break;
}
*pResult = 0;
}