Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Рисование на канве в заданном прямоугольнике


cyber-pilot ©   (2011-12-15 01:10:00) 

Есть код, который рисует на канве линии, прямоугольники и выводит текст. И в некоторых случаях требуется задать прямоугольную область, в которой бы отрисовка выполнялась как и раньше, а вне области ничего не отрисовывалось. Как это можно сделать?
Пока что придумал такой способ: для вывода текста использовать ExtTextOut - в нем можно указать область отрисовки, а для линий и прямоугольников вычислять точки пересечения с областью отрисовки и рисовать только то, что нужно.
Но при таком способе нужно будет много кода переделать. Может быть есть способ попроще?


han_malign   (2011-12-15 18:03:00) [1]


> Помогли CreateRectRgn и SelectClipRgn

- хватило бы и IntersectClipRect...


cyber-pilot   (2011-12-15 16:04:00) [2]


> KilkennyCat ©   (15.12.11 02:22) [4]

Спасибо!
Помогли CreateRectRgn и SelectClipRgn


KilkennyCat   (2011-12-15 02:22:00) [3]


> cyber-pilot   (15.12.11 01:48) [3]

ну, хочешь лучше - изучай это: http://msdn.microsoft.com/en-us/library/dd183439%28v=VS.85%29.aspx


cyber-pilot   (2011-12-15 01:48:00) [4]


>  KilkennyCat ©   (15.12.11 01:17) [1]

Да, так будет проще. Немного неоптимально, но если ничего лучше не найду, пожалуй так и буду делать. Спасибо.


> Германн ©   (15.12.11 01:34) [2]

Код отрисовки содержимого текстового радактора. Достался в наследство от предыдущих разработчиков, частично переделывался мной.


Германн   (2011-12-15 01:34:00) [5]


> Есть код, который рисует на канве линии

Какой код? Откуда "натырен"?


KilkennyCat   (2011-12-15 01:17:00) [6]

создать битмап, размером, равным требуемой области. рисовать на нем. после, его копировать в эту область.


Наверх

Титульная страница Поиск, карта сайта Написать письмо