![]() |
|
|
![]()
|
|
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 5 Всего: 98 |
Добрый день.
Подскажите как определить размеры видимой части диалога (CDialogBar). Т.е. те размеры, которые имеют полосы прокрутки. С уважением... -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Nastya |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 27.3.2002 Где: Мариуполь Репутация: 1 Всего: 44 |
Сорьки, не совсем понятно какие размеры тебе нужны? И в каком месте?
-------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 5 Всего: 98 |
Возьмем для примера браузер.
видимая его область ограничена размерами экрана (если окно не максимизировано -- меньше). А полные (не знаю как они привильно называются) размеры -- несколько килопикселей (при больших сраницах). Вот мне бы хотелось получить эти размеры (в обработчике WM_SIZE). Потому как GetWindow/Client Rect возвращают полные размеры. -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| 0x07L |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 10.6.2006 Где: Москва Репутация: 1 Всего: 5 |
::GetScrollRange ?
|
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 5 Всего: 98 |
не подходит. я вызываю SetScrollInfo для установки SCROLLINFO::nMin / nMax основываясь на полных размерах...
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
А откуда в DialogBar берутся "лишние" размеры, что приходится делать скроллинг? Если ты создаешь по шаблону, а потом сам уменьшаешь размер до какого-то значения, то исходный размер можно взять из шаблона, только не забудь пересчитать из диалоговых единиц в пикселы. Другой вариант - если ты генеришь контролы вручную - тогда сам определяй по дороге, сколько места тебе нужно.
Можно еще посмотреть как это реализовано в CFormView. -------------------- ... |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 5 Всего: 98 |
там динамичские по размеру контролы лежат.
созаю вручную. определять по дороге пытался. но, похоже, парент автоматом ресайзится под размеры чилда. в результате размеры получаю неправильные. на CFormView посмотрю... -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Точно, CFormView делает так: сначала создает диалог по шаблону как получится (невидимый), спрашивает его размеры, их использует для установки диапазонов скроллинга, а потом загоняет свои размеры в заданные:
А у тебя как диалог-бар создается? Это про что? Если у тебя есть шаблон, можно сделать так: переопределить Create, сначала вызвать стандартный, потом запомнить полученный размер (для скроллинга) и затем ужать до заданных размеров. -------------------- ... |
|||
|
||||
| v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: нет Всего: 56 |
Пробую сделать скролл для FormView.
Но он мне создаёт скролл с постоянным размером(позволяет открывать окошко на 1 см по вертикали и 1 см по горизонтали), который не изменяется при уменьшении/увеличение размера окна Это если я в свойствах - Border указываю Dialog Frame, если указывать None, то вообще не появляется никаких скролов!. спсб. |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Что просишь, то и получаешь. Судя по коду, ты устанавливаешь пределы скроллинга равными области окна. Минус заголов, бордеры, сами полосы - вот и получаешь свой сантиметр.
ScrollSizes - это размеры полной виртуальной области. Кроме того, Форм-вью сам прекрасно устанавливает размеры скроллинга, согласно диалоговому ресурсу, по которому он создается. -------------------- ... |
|||
|
||||
| v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: нет Всего: 56 |
вот это я бы выдумывал, если бы создавал он сам скролы... В том то и проблема что почему то скролы не появляются!
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Так может все и так влазит?
Я давно не работала с Форм-вью, но у меня осталось ощущение, что там все "само"... Может, что-то не так делаешь? -------------------- ... |
|||
|
||||
| v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: нет Всего: 56 |
да, нашёл ошибочку.... оно таки само скролы рисует.
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |