Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Системное программирование и WinAPI > полосы прокрутки в рисовании |
Автор: darthnick 22.5.2006, 03:28 | ||
хай задача: нарисовать линию, превышающую размеры окна и смотреть недоступную часть линии полосой прокрутки(чтобы в будущем строить графики по точкам). Мой код:
пробовал так же еще и с SCROLLINFO и с полосой в качестве отдельного окна. Собственно проблема: линия не в какую не хочет сдвигаться ![]() посоветуйте что делать ![]() заранее спасибо |
Автор: ElcnU 22.5.2006, 09:56 | ||
на MFC на основе CScrollView все просто:в функции OnDraw(...) рисуешь что угодно, главное заранее выставить
|
Автор: darthnick 22.5.2006, 13:14 |
не люблю MFC ![]() надо чистый апи ![]() как я понимаю, надо как то сдвигать координаты ![]() |
Автор: ElcnU 22.5.2006, 14:41 | ||||
Необходимо задать размер область отрисовки с учетом скрола(такая логика в MFC)
может установить
|
Автор: darthnick 22.5.2006, 16:09 |
я уже помойму всё перепробовал ![]() |
Автор: Vaulter 22.5.2006, 16:39 |
darthnick, во первых заведи постоянную hdc, на которой будешь рисовать, и она какраз таки будет необходимой ширины. далее, в начале программы естесвенно при WM_PAINT bitblt по 0,0, ширина окна, высота окна енеблишь скрол если клиент-высота окна меньше высоты твоей hdc отлавливая скролл - запоминаешь координаты "origin" - откуда рисовать ИЗ hdc в 0,0 рисуешь... ![]() есть еще.. событие... не помню как зовется, MSDN ща нет ![]() по нему можно и отловить скролл и прорисовать корректно - оно именно для этого |
Автор: darthnick 22.5.2006, 16:46 | ||
спасиба ![]() изменил на
работает О.о |