Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.02.2014, 01:50
DJDrugsounD DJDrugsounD вне форума
Прохожий
 
Регистрация: 29.06.2012
Сообщения: 11
Репутация: 10
Вопрос Рисование на рабочем столе под иконками

Доброго времени суток! Народ, помогите пожалуйста, целый день бороздил гугл в поисках нужной инфы, и результата ноль...

Моя цель: выводить графику вместо обоев рабочего стола под иконками, в моём случае графика рисуется средствами OpenGL

варианты:
Код:
function GetDesktopListViewHandle: THandle;
var
  S: String;
begin
  Result := FindWindow('ProgMan', nil);
  Result := GetWindow(Result, GW_CHILD);
  Result := GetWindow(Result, GW_CHILD);
  SetLength(S, 40);
  GetClassName(Result, PChar(S), 39);
  if PChar(S) <> 'SysListView32' then Result := 0;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  dc: HDC;
begin
  dc := GetDC (GetDesktopListViewHandle);
  Rectangle (dc, 10, 10, 110, 110);
  ReleaseDC (Handle, dc);
  DeleteDC (DC);
end;
и их подобные нужного результата не дают, рисуется поверх иконок

оверлей тоже не катит, так как на Win7 он работает только тогда когда выбран упрощённый стиль, и то с ужасными артефактами в области иконок.

Есть ли ещё рабочие варианты как это можно сделать? или придётся рисовать уже собственный рабочий стол и лепить его поверх стандартного
Ответить с цитированием
  #2  
Старый 08.02.2014, 16:12
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

препаинт у листбокс тяжкий труд...
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 08.02.2014, 17:13
DJDrugsounD DJDrugsounD вне форума
Прохожий
 
Регистрация: 29.06.2012
Сообщения: 11
Репутация: 10
По умолчанию

Цитата:
Сообщение от NumLock
препаинт у листбокс тяжкий труд...
можно поподробней?


нашёл вот такой вот вариант ещё:
Цитата:
Как добраться до Оверлея базовыми средствами понятно:
Добираемся до SysListView32 на рабочем столе далее установить хук ловим WM_PAINT и рисуем. Тут все Ок! под иконками все рисуется.
с хуками опыта нет, буду разбираться
Ответить с цитированием
  #4  
Старый 08.02.2014, 18:21
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Цитата:
Сообщение от DJDrugsounD
можно поподробней?
ой, ошибся, с ERASE
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:18.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter