Форум: "WinAPI";
Текущий архив: 2007.11.25;
Скачать: [xml.tar.bz2];
ВнизТень от формы Найти похожие ветки
← →
B0ob (2007-05-12 07:40) [0]Как сделать тень от формы(например как в заставке от фотошопа)??
← →
йцукенг (2007-05-12 15:29) [1]создай дополнительную полупрозрачную форму
← →
DVM © (2007-05-12 15:44) [2]
> Как сделать тень от формы(например как в заставке от фотошопа)?
> ?
Фотошоп делает как-то так:
1) Делает скриншот рабочего стола.
2) Создает окно прямоугольное окно.
3) Копирует на окно нужную часть рабочего стола.
4) Рисует сверху тень
5) Рисует сверху фон окна.
← →
{RASkov} © (2007-05-12 16:00) [3]> [0] B0ob (12.05.07 07:40)
на CreateForm
SetClassLong(Handle, GCL_STYLE, GetWindowLong(Handle, GCL_STYLE) or $00020000);
← →
DVM © (2007-05-12 16:06) [4]
> {RASkov} © (12.05.07 16:00) [3]
Это крайне глючный вариант, который приводит к зависнию или вылету приложений под некоторыми версиями Win. Замечу - не старыми версиями, типа Win2000 со всеми SP/XP/2003. В более ранних это вообще игнорируется.
← →
{RASkov} © (2007-05-12 17:39) [5]> [4] DVM © (12.05.07 16:06)
Может быть.... Буду иметь ввиду )
← →
homm © (2007-05-12 18:04) [6]> Это крайне глючный вариант, который приводит к зависнию
> или вылету приложений под некоторыми версиями Win.
0_о Какими это?
> В более ранних это вообще игнорируется.
Пусть. Иногда это не страшно.
Ну а в целом конечно [3] не отвечает на вопрос, «как это сделано в фотошопе» :)
← →
DVM © (2007-05-12 18:10) [7]
> 0_о Какими это?
Как то сталкивался, что сие не работает в Win2000:
procedure TSplashForm.CreateParams(var Params: TCreateParams);
const
CS_DROPSHADOW = $00020000;
begin
inherited;
Params.WindowClass.Style := Params.WindowClass.Style or CS_DROPSHADOW;
end;
Приложение стартовало и сразу закрывалось без каких либо сообщений. Я долго не мог понять, в чем же дело. Потом нашел.
Спустя время, оказалось, что это и в XP не всегда работает. Тогда не записал точную версию XP и сервис паки и прочие параметры системы - не было времени - просто убрал тень. С тех пор не использую.
> Ну а в целом конечно [3] не отвечает на вопрос, «как это
> сделано в фотошопе» :)
По моему наоборот отвечает именно как сделано в фотошопе. Там действительно так сделано. Там окно даже регионов непрямоугольных не имеет. Обманка. И тень ненастоящая.
← →
homm © (2007-05-12 18:36) [8]> По моему наоборот отвечает именно как сделано в фотошопе.
[2] c [3] путаешь? :)
> Как то сталкивался, что сие не работает в Win2000:
Вполне может быть что дело не совсем в этом. ХП тоже вот приложение акрывает если есть манифест на использование 6-й версии конролов, но перед вызовом CreateWindow нет InitCommonSontrols (или как ее там).
← →
DVM © (2007-05-12 18:44) [9]
> [2] c [3] путаешь? :)
Извини, действительно препутал. :)
> Вполне может быть что дело не совсем в этом.
Как только я эти строки убрал - все заработало. А манифест в программе лежал всегда в ресурсах под всеми Win.
← →
B0ob (2007-05-14 14:28) [10]Спасибо за советы, я нашел исходник, который рисует тень по маске(альфа-каналы и все такое), очень хороший исходник, думаю разберусь
← →
Ketmar © (2007-05-16 16:38) [11]http://www.codeproject.com/gdi/pxalphablend.asp
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2007.11.25;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.054 c