Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2007.09.02;
Скачать: [xml.tar.bz2];

Вниз

Прозрачное окно, созданное с помощью CreateWindow   Найти похожие ветки 

 
Vulix ©   (2006-11-29 08:50) [0]

Привет всем.

Есть класс, который создает окно и пытается сделать его прозрачным :

function SetLayeredWindowAttributes(hWindow : HWND; crKey : DWORD; bAlpha : Byte; dwFlags : DWORD) : BOOL; stdcall; external user32 name "SetLayeredWindowAttributes";

...
constructor TTestButton.Create(x,y,w,h,dx,dy:integer;sHint:string;hParent:THandle);
//dx и dy нужные мне параметры, в данном случае неважны
...

initialization
ZeroMemory(@WndClass,SizeOf(TWndClassEx));
WndClass.hInstance:=HInstance;
With WndClass do
 Begin
  cbSize:=SizeOf(TWndClassEx);
  lpfnWndProc:=@TestWndProc;
  lpszClassName:="TestButtonWindow";
  hCursor:=LoadCursor(0, IDC_ARROW);
 End;
RegisterClassEx(WndClass);

в методе Create я делаю
...
Handle:=CreateWindow("TestButtonWindow",nil,WS_CHILD,x,y,w,h,Parent,0,HInstance, nil);
//где HInstance принадлежит другому (родительскому) окну
SetWindowLong(Handle,GWL_USERDATA,Integer(Self));
//ниже я пытаюсь сделать созданное окно прозачным
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_LAYERED);
SetLayeredWindowAttributes(Handle, 0, Byte(100), 2);

В процедуре TestWndProc я перехватываю WM_PAINT и закрашиваю окно черным цветом. ПРи запуске, окно все черное, прозрачности не наблюдается.
Окно показываю из другого места методом ShowWindow  с параметром SW_SHOW.
Подскажите, где косяк?


 
Vulix ©   (2006-11-29 08:51) [1]

//где HInstance принадлежит другому (родительскому) окну
попровка, не HInstance, а Parent


 
Vulix ©   (2006-11-29 09:28) [2]

Странно, а почему
Handle:=CreateWindowEx(WS_EX_LAYERED,"VxButtonWindow",nil,WS_CHILD,x,y,w,h,Paren t,0,HInstance,nil);
не работает (возвращает 0), а
Handle:=CreateWindowEx(0,"VxButtonWindow",nil,WS_CHILD,x,y,w,h,Parent,0,HInstanc e,nil);
работает...


 
Vulix ©   (2006-11-29 09:53) [3]

Спасибо всем, разобрался...
"Note that WS_EX_LAYERED cannot be used for child windows."
Вот облом



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2007.09.02;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.048 c
9-1159184845
!Trinix
2006-09-25 15:47
2007.09.02
Snap Cubemap


15-1185959643
Сатир
2007-08-01 13:14
2007.09.02
Не сохраняются настройки cxGrid, если не установлен Delphi


2-1186480407
Ванечка
2007-08-07 13:53
2007.09.02
Программно запустить файл *.html на просмотр ?


15-1185986188
oldman
2007-08-01 20:36
2007.09.02
А была ли Windows 1.0 beta?


15-1186331384
foreverDelphi
2007-08-05 20:29
2007.09.02
от ламера гуру Piterу





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский