Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.01.2008, 12:52   #1
masterdela
Пользователь
 
Аватар для masterdela
 
Регистрация: 28.01.2008
Сообщений: 66
Вопрос Рабочий стол

Подскажите, плиз, возможно ли работать с рабочим столом как с холстом. И как, если возможно.
Была бы цель - и всё получится!
masterdela вне форума Ответить с цитированием
Старый 29.01.2008, 13:11   #2
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Код:
  ScreenDC := GetDC(0);
  Canvas := TCanvas.Create();
  Сanvas.Handle := ScreenDC;
  // Дальше работаем с Canvas
alexBlack вне форума Ответить с цитированием
Старый 31.01.2008, 18:21   #3
masterdela
Пользователь
 
Аватар для masterdela
 
Регистрация: 28.01.2008
Сообщений: 66
Восклицание

Спасибо, конечно, но я спрашивал с рабочим столом, а не со всем экраном! А вот как работать с графикой конкретно на рабочем столе? Да, и, работая с экраном, как его обновлять? Например, для создания анимации...
Была бы цель - и всё получится!
masterdela вне форума Ответить с цитированием
Старый 31.01.2008, 19:03   #4
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

1. Находим окно Program Manager'а, исходя из текущего десктопа (это не совсем то, где иконки нарисованы )
Код:
HWND hProgramManager = FindWindowEx(NULL, NULL, "Progman", "Program Manager");
2. Отталкиваясь от него находим главное окно explorer'a (который Shell)
Код:
HWND hShellView = FindWindowEx(hProgramManager, NULL, "SHELLDLL_DefView", NULL);
3. Находим принадлежащее ему окно с иконками:
Код:
HWND hListView = FindWindowEx(hShellView, NULL, "SysListView32", "FolderView");
4. Берем контекст и рисуем:
Код:
HDC hDC = GetDC(hListView);
Rectangle(hDC, 0,0,100,100);
Попутно можем еще выяснить размер рабочей зоны:
Код:
RECT rcWorkArea;
SystemParametersInfo(SPI_GETWORKAREA, 0, &rcWorkArea, 0);
B_N вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
пропадает пуск, рабочий стол. SAYLOR Безопасность, Шифрование 6 27.08.2008 05:03
Ярлык книги на рабочий стол FoxRiver Microsoft Office Excel 4 28.07.2008 09:24
Рабочий стол, рисование D-mon Win Api 7 22.11.2007 18:54
обновление в блоге - Рабочий стол Pblog Обсуждение статей 0 27.05.2007 03:17