Вы можете использовать поверхность рабочего стола для вывода любой графики. Этот способ может понадобится для написания различных напоминалок, показ праздников. Вы можете поселить на рабочем столе забавного персонажа из комикса и многое другое. Осуществить это можно очень простым способом, напишем процедуру для рисования:
1 2 3 4 5 6 7 procedure TForm1.DeskTopPaint(Sender:Tobject); var DeskTop:TCanvas; begin DeskTop:=TCanvas.Create; try DeskTop.Handle:=GetDC(0);// Получим Handle Рабочего стола
И ВСЕ!!! Далее работаем с DeskTop как с обычным TCanvas.
Например поместим текущую дату:
Единственный минус данного способа – другие формы затирают надпись. По этому есть несколько других методов. Это прозрачная форма и помещение изображения вместо бакграунда ( так делают почти все программы календари ). Для смены обоев предусмотрена функция Win32API:
1 SystemParametersInfo(SPI_SETDESKWALLPAPER,0,PChar('Path'),SPIF_SENDWININICHANGE);Где Path - путь к BMP файлу. По умолчанию устанавливает обои как рисовать мой рабочий стол ‘В центре’, а как поставить ‘Размножить’ я так и не нашел. Если вы захотите убрать обои, то в параметре Path надо указать несуществующий файл.
При работе часто требуется обновить рабочий стол, по умолчанию это делается клавишей F5. В Delphi это делается это вот такой функцией:
Функцией FindWindow находим, и получаем handle на нужное окно.
Первый параметр – class name / название класса /, а второй – window name / название окна /
SendMessage – функция, для посылания сообщений окну или окнам, вот ее параметры :
В заключении: люди, по чаще смотрите Help по Delphi, особенно полезен файл Win32.hlp. Можно многому научиться
Таги: 2D, Рабочий стол
Источник: http://www.kumo.spb.ru/2d-graphics/drawing-on-the-desctop-108.html
Поделись с друзьями

Рекомендуем посмотреть ещё:
Как нарисовать мой рабочий стол Как нарисовать? Художественная вышивка лентой








