Динамическое изменение размера CMFCPropertySheet со стилем PropSheetLook_OneNoteTabs - PullRequest
1 голос
/ 18 декабря 2008

Я пытаюсь динамически изменить размер CMFCPropertySheet, чтобы добавить пользовательский элемент управления внизу каждой страницы.

Поскольку все страницы свойств не имеют одинаковую высоту, у меня есть механизм для увеличения размера при необходимости. Для этого я переопределил метод OnActivatePage и, используя SetWindowPos, я могу сначала изменить размер листа, затем элемент управления вкладками, затем страницу и, наконец, я могу перемещать кнопки OK / Отмена / Справка.

Отлично работает со стилями PropSheetLook_OutlookBar и PropSheetLook_Tabs, но не со стилем PropSheetLook_OneNoteTabs. Размер страницы (или вкладки) изменен неправильно (светло-серый цвет страницы не заполняет лист.

Стиль OneNote OneNote http://www.freeimagehosting.net/uploads/th.ec91600664.jpg

Стиль Outlook Outlook http://www.freeimagehosting.net/uploads/th.319b6938ab.jpg

Есть идеи? Ошибка пакета функций MFC?

Ответы [ 2 ]

0 голосов
/ 01 ноября 2011

Просто следуйте инструкциям, как показано в здесь . Хотя инструкции предназначены для CPropertySheet , они также работают для CMFCPropertySheet .

Некоторые части кода устарели, поэтому вам нужно будет внести следующие изменения.

  1. Пропустить реализации XmnPropSheetCallback и DoModal
  2. В OnInitDialog просто позвоните CPropertySheet::OnInitDialog();, а затем наберите OnSize вместо того, чтобы делать все, что представлено в этом коде.
0 голосов
/ 27 августа 2009

Я нашел проблему. Нужно получить ссылку на другой элемент управления вкладками, который используется в версии OneNote через GetTab(), и соответственно изменить его размер.

...