| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > Отрисовка gdi со скроллированием |
| Автор: M_A_Y_ 26.3.2008, 10:20 |
| Всем привет. У меня есть некий объект (в данном случае N-арное дерево) которое надо нарисовать в диалоговом окне (средствами GDI). Если дерево слишком большое то определенная часть его обрезается и добавляются полосы прокрутки. Внимание вопрос. мне получается надо добавить некий контрол в котором я потом буду рисовать это рас, тоесть будут отсекаться не нужные части. Как реализовать скролл? Заранее всем спасибо. |
| Автор: korian 26.3.2008, 10:25 |
| если совсем не мучаться - CTreeCtrl/CTreeView а если надо помучаться, то CScrollView |
| Автор: M_A_Y_ 26.3.2008, 11:34 |
| А можно поподробней? тоесть я завожу контрол CTreeCtrl наследую его например от CWnd и уже в нем рисую, а в далоге обработчики скроллеров, и сообщение контролу на перерисовку, так? |
| Автор: Andrey44 26.3.2008, 11:52 |
| Зачем тебе заводить контрол, да еще и наследовать от кого-то? Если тебе средствами GDI, то просто надо как-то рекурсивно рисовать линии, как в дереве. И смотреть по координатам, если выходим за пределы окна показываем CScrollView. |
| Автор: M_A_Y_ 26.3.2008, 12:05 |
| У меня диалог (CDialog)! как предлагаешь "показываем CScrollView"? в том-то и дело что мне в диалоге надо выделить часть, в которой будет рисоватсья дерево |
| Автор: Andrey44 26.3.2008, 12:17 |
| Хорошо, нарисовать на своем диалоге дерево сможешь? А потом разберемся со скролом |
| Автор: M_A_Y_ 26.3.2008, 13:14 |
| ну дерево на диалоге я уже нарисовал. тупо сверху, рисуется на OnPaint() |
| Автор: Andrey44 26.3.2008, 13:50 |
| Теперь кидай на свой диалог CScrollBar |
| Автор: M_A_Y_ 26.3.2008, 16:53 |
| Как? я завел два скролла вертикальный и горизонтаьлный |
| Автор: Andrey44 27.3.2008, 09:51 |
| Теперь делай проверку если координаты рисунка выходят за пределы окна показывай или один или другой скролл |
| Автор: M_A_Y_ 27.3.2008, 16:38 |
| Проверка есть, Как сделать обработчик сообщенйи WM_HSCROLL, WM_HSCROLL? |
| Автор: M_A_Y_ 27.3.2008, 17:30 | ||
Все, получилось.
Дальше уже разберусь. Спасибо. |