Вы можете использовать поверхность рабочего стола для вывода любой графики. Этот способ может понадобится для написания различных напоминалок, показ праздников. Вы можете поселить на рабочем столе забавного персонажа из комикса и многое другое. Осуществить это можно очень простым способом, напишем процедуру для рисования:
procedure TForm1.DeskTopPaint(Sender:Tobject); |
И ВСЕ !!! Далее работаем с DeskTop как с обычным TCanvas.
Например поместим текущую дату:
DeskTop.Brush.Style:=bsClear; // Устанавливаем тип кисти |
Единственный минус данного способа - другие формы затирают надпись. По этому есть несколько других методов. Это прозрачная форма и помещение изображения вместо бакграунда ( так делают почти все программы календари ). Для смены обоев предусмотрена функция Win32API:
SystemParametersInfo(SPI_SETDESKWALLPAPER,0,PChar('Path'),SPIF_SENDWININICHANGE);Где Path - путь к BMP файлу. |
По умолчанию устанавливает обои 'В центре', а как поставить 'Размножить' я так и не нашел. Если вы захотите убрать обои, то в параметре Path надо указать несуществующий файл.
При работе часто требуется обновить рабочий стол, по умолчанию это делается клавишей F5. В Delphi это делается это вот такой функцией:
SendMessage(FindWindow ('Progman', 'Program Manager'), WM_COMMAND, $A065, 0); |
Функцией FindWindow находим, и получаем handle на нужное окно.
Первый параметр - class name / название класса /, а второй - window name / название окна /
SendMessage - функция, для посылания сообщений окну или окнам, вот ее параметры :
SendMessage( |