![]() |
|
![]() ![]() ![]() |
|
constN |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 9.6.2008 Репутация: нет Всего: нет |
Вопрос вот в чем.
Я на PropertySheet динамически добавляю страницы(по кнопке из самой PropertySheet). Не смог найти как перерисовать PropertySheet, так чтобы была видна вся новая страница(размер поменялся). Если диалог закрыть и открыть, то PropertySheet подхватывает новые размеры. Как это сделать динамически. Может мессага какая кидается при инициализации? Среди методов ничего похожего не нашел. В общем, если кто знает подскажите пожалуйста. |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Не совсем поняла - так новая страница не появляется? Тогда при чем тут размер?
-------------------- ... |
|||
|
||||
voov |
|
|||
![]() Патамушта мы пилоты ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 29.11.2007 Репутация: 8 Всего: 8 |
Если перерисовка поможет, то - Invalidate()
|
|||
|
||||
constN |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 9.6.2008 Репутация: нет Всего: нет |
Да нет, новая страница появляется (с этим все ОК).
Просто когда добавляешь с десяток новых страниц их закладки (не помню, как они по-научному называются), выстраиваются сверху в 3-4 ряда. Естестественно они занимают место. А размер PropertySheet остается как в момент открытия диалога. Поэтому видимая рабочая область PropertyPage урезается снизу. Кода диалог закроешь и откроешь снова размер PropertySheet становиться новый (с учетом новых Page) - и все отображается снова красиво. Я так понимаю размер PropertySheet высчитывается (в зависимости от размеров PropertyPage) когда-то в момент инициалицации PropertySheet. Руками вычислять размер PropertySheet (так чтобы красиво отображались PropertyPage) в момент добавления не хотелось-бы (выдь факт, что PropertySheet умеет это делать самостоятельно). Вариант сделать чтобы закладки выстраивались в линию с возможностью прокрутки не предлагать - так постановщик не хочет. Вопрос - как пересчитывать размер PropertySheet в зависимости от размера PropertyPage когда диалог открыт. Может событие какое возникает, типа Refresh, или Message какая кидается в систему, которая дает команду перерисовать PropertySheet с учетом PropertyPage? Попытался объяснить попонятнее. |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Ясно...
Есть сообщение PSM_RECALPAGESIZES, сама не пробовала, но вроде по описание это оно:
-------------------- ... |
|||
|
||||
constN |
|
||||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 9.6.2008 Репутация: нет Всего: нет |
Спасибо Earnest, это ОНО.
пришлось правда добавить
иначе компилятор ругался. Итоговый ответ - после PageAdd() делаем:
Еще раз спасибо за оперативную помощь. |
||||
|
|||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Ой! Оно ведь определено в WinAPI - нужно просто включить CommCtrl.h или CommDlg.h... или прямо PrSht.h. А то, что ты сделал, не очень хороший путь... -------------------- ... |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |