![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Бармалей |
|
|||
|
Unregistered |
Товарисчи! Помахите с полосой прокрутки в Win32API .
Меня конкретно волнует такой вопрос :Как сделать так чтобы при прокрутке все содержимое моей диалоговой панели тоже крутилось ооочень хочется заранее спасибо. |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
А че за панель (CDialogBar что-ли ?)
В общих чертах энто делается примерно так. Если у тебя панель по размеру больше чем клиентская область родительского окна (как я понял), то хотелось бы иметь скролбар чтобы двигать ее туды-сюды. Для создания полосы прокрутки, кидай на то же родительское окно CScrollBar (не забывай менять его размеры и позицию в OnSize, так же как и размеры панели, чтобы она не "пересеклась" с полосой прокрутки), либо сделай вызов SetScrollInfo непосредственно для окна панели, после ее создания (но тогда при скроллинге будут двигаться и сами скроллбары Теперь - что делать со скроллингом. Если пришло сообщение WM_XSCROLL (X - это H или V), то все что нужно сделать - реагировать на него (создай обработчик OnHScroll/OnVScroll для окна панели; если юзаешь готовый класс панели - сделай производный от него, с обработчиком скроллинга, и после создания окна панели вызывай SubclassWindow). После расчета, на сколько куда переместить (в зависимости от "nSBCode" и "nPos"), делай собственно смещение всего содержимого окна (this->MoveWindow(x, y, width, height, TRUE)), т.е. сдвигай диалоговую панель визуально. При этом та часть ее, что "вылезет" за клиентскую область родительского окна, станет невидимой автоматически. Параметры скроллбаров (кол-во пикселов на единичный скроллинг, размеры бегунка и т.д.) - задаются SetScrollInfo. В общем, все ;) -------------------- ![]() |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |