Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
2-1194249160
ASDE
2007-11-05 10:52
2007.11.25
RegisterServiceCtrlHandlerEx


15-1193068903
Ученик
2007-10-22 20:01
2007.11.25
Посоветуйте простой графический редактор сайтов


2-1193827989
F@T@L_Err0r
2007-10-31 13:53
2007.11.25
Скопировать папку


2-1194094219
Kolan
2007-11-03 15:50
2007.11.25
Как проеделить координаты для DropDownMenu у ToolButton?


8-1169983919
T54
2007-01-28 14:31
2007.11.25
Количество точек на дюйм - ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский