| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > ScrollBar уезжает вместе с клиентской областью |
| Автор: Darked 14.9.2004, 08:43 |
| Всем привет. Такая трабла. Создаю SDI Dialog Based, на диалоговую область кидаю скроллбар. событие WM_VSCROLL обрабатываю и прокручиваю clientarea, прблема в том что у меня вместе с окном уезжает и скроллбар. Как сделать чтобы он не двигался? |
| Автор: mr.DUDA 14.9.2004, 13:56 |
| Если крутишь с пом. ScrollDC - то просто урежь прямоугольник справа; если же в обработчике WM_VSCROLL двигаешь контролы (MoveWindow) - то просто исключи контрол-скроллбар из прокрутки. |
| Автор: Darked 14.9.2004, 21:25 |
| mr.DUDA Я двигаю с помощью ScrollWindowEx |
| Автор: mr.DUDA 15.9.2004, 09:08 |
| Тогда урежь прямоугольники, передаваемые через lpRectScroll и lpRectClip справа на GetSystemMetrics(SM_CXVSCROLL) пикселов. |
| Автор: Олег М 15.9.2004, 12:17 | ||
Я так понял ты используешь CScrollbarCtrl, который находится в клиентской части диалога. Для обычного окна GetClientRect, который используется в ScrollWindowEx, исключает области, занимаемыми скроллбарами. Тебе же, наверное, надо сделать это вручную. Получи размеры своего скроллбара и уменьши клиентский прямоугольник на нужную величину, и передай его в ScrollWindowEx |
| Автор: Guest 15.9.2004, 21:58 |
| Спасибо, попробую. |
| Автор: Darked 15.9.2004, 22:04 |
| Спасибо, попробую. Олег М Я использую CScrollBar, пишу на WTL. |