Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вывод Bitmap на экран без создания окна [XP]


Алик ©   (2006-12-13 11:29:00) 

Добрый день,

Как принято во многих прогах, в момент загрузки программы появляется картинка типа About.
Как можно это сделать не создавая дополнительной формы для этого (TForm).

Пробовал следующий вариант

var
 DesktopCanvas: TCanvas;
begin
 DesktopCanvas := TCanvas.Create;
 try
   DesktopCanvas.Handle := GetDC(0);
   try
     DesktopCanvas.MoveTo(0, 0);
     DesktopCanvas.LineTo(Screen.Width, Screen.Height);
   finally
     ReleaseDC(0, DesktopCanvas.Handle);
     DesktopCanvas.Handle := 0;
   end;
 finally
   DesktopCanvas.Free;
 end;
end;


Но когда начинает что-то появляться на экране, данный рисунок затирается.
Как сделать, чтобы он не исчезал?


DVM   (2006-12-13 11:37:00) [1]


> Как можно это сделать не создавая дополнительной формы для
> этого (TForm).

А зачем такое изобретать то? Хочешь сделать окно как в продуктах Adobe? И без регионов?

Лучше так:
1) Сделать скриншот экрана.
2) Создать окно без бордюра
3) Отрисовать на окне часть скриншота
4) Отрисовать сверху свой рисунок с учетом прозрачности
5) Готово.


DVM   (2006-12-13 11:34:00) [2]


> Как сделать, чтобы он не исчезал?

Ловушку глобальную поставить на WM_PAINT


Наверх

Титульная страница Поиск, карта сайта Написать письмо