![]() |
|
![]() ![]() ![]() |
|
M_A_Y_ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 30.5.2007 Репутация: нет Всего: нет |
Всем привет.
У меня есть некий объект (в данном случае N-арное дерево) которое надо нарисовать в диалоговом окне (средствами GDI). Если дерево слишком большое то определенная часть его обрезается и добавляются полосы прокрутки. Внимание вопрос. мне получается надо добавить некий контрол в котором я потом буду рисовать это рас, тоесть будут отсекаться не нужные части. Как реализовать скролл? Заранее всем спасибо. |
|||
|
||||
korian |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 8.3.2008 Где: Украина, Харьков Репутация: 2 Всего: 17 |
если совсем не мучаться - CTreeCtrl/CTreeView
а если надо помучаться, то CScrollView |
|||
|
||||
M_A_Y_ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 30.5.2007 Репутация: нет Всего: нет |
А можно поподробней? тоесть я завожу контрол CTreeCtrl наследую его например от CWnd и уже в нем рисую, а в далоге обработчики скроллеров, и сообщение контролу на перерисовку, так?
|
|||
|
||||
Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 12 Всего: 26 |
Зачем тебе заводить контрол, да еще и наследовать от кого-то?
Если тебе средствами GDI, то просто надо как-то рекурсивно рисовать линии, как в дереве. И смотреть по координатам, если выходим за пределы окна показываем CScrollView. -------------------- ????? ??, ??????? ?????. ![]() |
|||
|
||||
M_A_Y_ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 30.5.2007 Репутация: нет Всего: нет |
У меня диалог (CDialog)! как предлагаешь "показываем CScrollView"? в том-то и дело что мне в диалоге надо выделить часть, в которой будет рисоватсья дерево
|
|||
|
||||
Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 12 Всего: 26 |
Хорошо, нарисовать на своем диалоге дерево сможешь?
А потом разберемся со скролом ![]() -------------------- ????? ??, ??????? ?????. ![]() |
|||
|
||||
M_A_Y_ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 30.5.2007 Репутация: нет Всего: нет |
ну дерево на диалоге я уже нарисовал. тупо сверху, рисуется на OnPaint()
|
|||
|
||||
Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 12 Всего: 26 |
Теперь кидай на свой диалог CScrollBar
![]() -------------------- ????? ??, ??????? ?????. ![]() |
|||
|
||||
M_A_Y_ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 30.5.2007 Репутация: нет Всего: нет |
Как? я завел два скролла вертикальный и горизонтаьлный
|
|||
|
||||
Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 12 Всего: 26 |
Теперь делай проверку если координаты рисунка выходят за пределы окна показывай или один или другой скролл
-------------------- ????? ??, ??????? ?????. ![]() |
|||
|
||||
M_A_Y_ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 30.5.2007 Репутация: нет Всего: нет |
Проверка есть, Как сделать обработчик сообщенйи WM_HSCROLL, WM_HSCROLL?
|
|||
|
||||
M_A_Y_ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 30.5.2007 Репутация: нет Всего: нет |
Все, получилось.
Дальше уже разберусь. Спасибо. |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |