![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Объясните, пожалуйста, как пользоваться SaveDC и RestoreDC. [D5, Win2k]
Unknown user © (2003-05-19 16:12:00)Я использую следующий код:
DC:=GetDC(MyControl.Handle);
SavedDC:=SaveDC(DC);
здесь меняю параметры Brush, Pen -MyControl.Canvas
и теперь хочу их восстановить
RestoreDC(DC,SavedDC);
но не получается, может я не понимаю назначения этих функций, или неверный контекст устройства?
Unknown user (2003-05-19 20:47:00) [1]To MBo. Потому что не знаю функций аналогичных SaveDC в VCL, можно( и скорее всего придется) конечно пользоваться Brush.Assign, Pen.Assign, но хотелось разобраться с SaveDC и RestoreDC -так на будущее...
MBo (2003-05-19 17:02:00) [2]>Да я использую VCL
Тогда какие причины использования низкоуровневых операций GetDC и т.д.?
Unknown user (2003-05-19 16:51:00) [3]To MBo. Да я использую VCL. Про какие VCL-ные средства для сохранения объектов TCanvas ты говорил? Я знаю, что SaveDC сохраняет много лишнего...
MBo (2003-05-19 16:21:00) [4]Надо разобраться - судя по MyControl.Handle, ты используешь VCL.
При этом можно VCL-ными средствами и сохранять атрибуты - TPen, TBrush. Если же ты используешь SelectObject - то эта функция возвращает дескриптор старого объекта - HPen и т.д., и в конце таким же макаром надо их и восстановить. Save/RestoreDC - довольно накладная операция, сохраняет некоторые атрибуты контекста, но VCL их все равно сбрасывает.