Поиск:

Ответ в темуСоздание новой темы Создание опроса
> CDC, CPaintDC, какая функция задает область отсечения? 
:(
    Опции темы
Dreamer_0x01
Дата 20.9.2005, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Терминатор
**


Профиль
Группа: Участник
Сообщений: 780
Регистрация: 14.4.2005
Где: Санкт-Петербург

Репутация: 9
Всего: 12



У меня рисуется куча линий.

В некотором прямоугольнике мне надо сделать так, чтобы линии не выходили за его пределы.

То есть надо
1. Нарисовать часть линий.
2. Включить некую область "отсечения" в виде прямоугольника и внутри него нарисовать несколько линий.
3. Отменить область отсечения и дорисовать остальные линии....

Какой функцией можно задать/отключить такой прямоугольник?


--------------------
Нет ничего невозможного. Есть цели, и есть время и силы на их достижение.
PM ICQ   Вверх
kometa_triatlon
Дата 20.9.2005, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 384
Регистрация: 7.1.2005
Где: Киев

Репутация: 1
Всего: 6



Копай в сторону InvalidateRect


--------------------
Всё очень просто: сказки обман,
Солнечный остров скрылся в туман,
Замков воздушных не носит земля,
Кто-то ошибся, ты или я.

--------------
Программирование - самое большое удовольствие, которое вы можете получить, будучи одетым.
PM MAIL ICQ   Вверх
Dreamer_0x01
Дата 20.9.2005, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Терминатор
**


Профиль
Группа: Участник
Сообщений: 780
Регистрация: 14.4.2005
Где: Санкт-Петербург

Репутация: 9
Всего: 12



А в обработке одного событии WM_PAINT разве можно его несколько раз менять?


--------------------
Нет ничего невозможного. Есть цели, и есть время и силы на их достижение.
PM ICQ   Вверх
The Thing
Дата 20.9.2005, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 286
Регистрация: 6.9.2004

Репутация: 1
Всего: 3



Создаешь dc с помощью dc.CreateCompatibleDC(...) (создание dc в памяти)
Рисуешь в dc что нужно.. и
далее берешь нужные размеры и копируешь из памяти в pDC проги
pDC->BitBlt(x, y, до x, до у, из &dc, SRCCOPY);
smile такой способ работает

Это сообщение отредактировал(а) The Thing - 20.9.2005, 21:01


--------------------
Правильность работы программы зависит от двух велечин.
В нужном месте должны стоять нолик и еденичка.
PM MAIL   Вверх
Dreamer_0x01
Дата 20.9.2005, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Терминатор
**


Профиль
Группа: Участник
Сообщений: 780
Регистрация: 14.4.2005
Где: Санкт-Петербург

Репутация: 9
Всего: 12



The Thing
Спасибо за вариант...
BitBlt я кстати у себя и так использую для двойной буверизации...Так можно и еще несколько их создать ;)


--------------------
Нет ничего невозможного. Есть цели, и есть время и силы на их достижение.
PM ICQ   Вверх
Earnest
Дата 22.9.2005, 07:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Вариант, предложенный The Thing, слишком громоздкий, особенно если по ходу дела отсечение нужно менять несколько раз.
Есть куча функций для работы с регионом отсечения (clipping functions): ExcludeClipRect, IntersectClipRect, ExtSelectClipRgn и т.д.

Если я правильно понимаю задачу, тебу надо сначала запомнить текущий ClipRgn, затем установить свой, сделать, что надо и восстановить старый. Для этого достаточно GetClipRgn и SelectClipRgn.




--------------------
...
PM   Вверх
Coocky
Дата 22.9.2005, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 25
Всего: 62



Во истину так..


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0842 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.