C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Windows GDI, и TPen
Любитель
Отправлено: 28.09.2006, 21:51


Дежурный стрелочник

Группа: Участник
Сообщений: 53



При рисовании на канве формы используется объект Pen класса TPen.
Например:
Form1->Canvas->Pen->Width=5;
У этого объекта есть свойство Mode, с помощью которого можно задать параметр pmNotXor, при
использовании которого при повторном рисовании получится исходный цвет фона. Что мне и требуется.
Но я рисую на рабочем столе следующим способом:
//получаем хэндл рабочего стола
HDC Desk=GetWindowDC(GetDesktopWindow());
//создаю перо:
HPEN MyPen=CreatePen(PS_SOLID, 0, clWhite);
//применяю его
SelectObject(Desk, MyPen);
Желательно указать здесь mode = pmNotXor как в TPen, но это невозможно. И использовать
здесь объект класса TPen не получается, т.к. у рабочего стола нет канвы
Хотя у объекта Pen класса TPen свойство Handle. Вот что написано в хелпе про это свойство:
The Handle property provides access to the Windows GDI object handle. TPen encapsulates the Windows pen object (HPEN). Use Handle when making a Windows API function call that requires the handle of a pen object. Handle is the Windows handle currently selected into the device context of the canvas.
Там говорится, что Handle обеспечивает доступ к Windows GDI.
Как реализовать класс TPen в Windows GDI? То есть надо, чтобы при рисовании на рабочем столе можно было использовать
свойство Mode класса TPen

Вернуться в Вопросы программирования в C++Builder