CPropertySheet с вертикальными листами
Как правильно создать объект CPropertySheet с вертикальными листами CPropertyPage?
Сюда я загрузил готовый демонстрационный проект с исходниками — это простое MDI приложение, класс представления CVerticalPropSheetView (производный от CView) которого отображает объект property sheet CPropSheetDemo (производный от CPropertySheet) с тремя листами:
http://forum.codenet.ru/attachment.php?attachmentid=1633&stc=1&d=1173007311
http://www.rsdn.ru:80/File/35531/VerticalPropSheet.rar
Я пробовал воспользоваться советом из переписки на CodeGuru: http://www.codeguru.com/forum/archive/index.php/t-331500.html, однако обнаружились следующие деффекты, связанные с изменением размеров окна property sheet в обработчике CVerticalPropSheetView::OnSize:
1) При изменении размеров окна CPropSheetDemo таким образом, что ширина меньше высоты, ярлыки самых нижних листов (property pages) не прорисовываются. Причем выглядит это так, что корректно отрисовывается только квадратная область, с длиной стороны равной ширине CPropertySheet.
2) При изменении высоты окна CPropertySheet таким образом, что оно не вмещает ярлыки всех листов, появляется spin control для выбора листов. Однако он не работает.
Как решить данную проблему? Все описанное выше появляется только при вертикальном отображении листов, т.е. пока в CPropSheetDemo::OnInitDialog() не закомментировать следующие строчки:
// create the new font for property pages' titles
CreateNewFont(&m_Font,14,_T("Microsoft Sans Serif"));
// make our property sheet vertical-oriented
CWnd* pctrlTab=GetDlgItem(AFX_IDC_TAB_CONTROL);
if (pctrlTab!=NULL) {
pctrlTab->ModifyStyle(TCS_FOCUSONBUTTONDOWN,TCS_VERTICAL,0);
pctrlTab->SetFont(&m_Font);
}
Заранее спасибо.
Неужели никто не сталкивался с такой проблемой?