Okno półprzeźroczyste Jak zrobć aby okno i kontrolki w nim się znajdujące były półprzeźroczyste i jak można sterować stopniem przeźroczystości okna. Widziałem coś takiego i bardzo mi się spodobało i chciałbym to wykorzystać w swoich programach.Z góry dziękuję za pomoc.
29-08-2004 16:23
hicks raptor user
Typ: moderator Postów: 279 Zarejestrowany: Apr 2003
Wkelj to w kodzie formy i uruchom program (poczym go wyłącz)Const LWA_COLORKEY = &H1Const LWA_ALPHA = &H2Const GWL_EXSTYLE = (-20)Const WS_EX_LAYERED = &H80000Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As LongPrivate Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPrivate Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As LongDim Ret As LongPrivate Sub Form_Load() Ret = GetWindowLong(Me.hwnd, GWL_EXSTYLE) Ret = Ret Or WS_EX_LAYERED SetWindowLong Me.hwnd, GWL_EXSTYLE, Ret Me.Show SetLayeredWindowAttributes Me.hwnd, 0, 0, LWA_ALPHA For petla = 1 To 255 SetLayeredWindowAttributes Me.hwnd, 0, petla, LWA_ALPHA DoEvents Next petlaEnd SubPrivate Sub Form_Unload(Cancel As Integer) For petla = 254 To 0 Step -1 SetLayeredWindowAttributes Me.hwnd, 0, petla, LWA_ALPHA DoEvents Next petlaEnd Sub [Post edytowany dnia 30-08-2004 11:20 przez hicks]_____________________________________________TLHW Clan member
30-08-2004 11:18
2511367
koala
Typ: neutral Postów: 9 Zarejestrowany: Nov 2003
A czy da się zrobić aby tylko okno było półprzeźroczyste a kontrolki nie?
30-08-2004 13:09
1333014
Chudy [TLHW]Wiktor
Typ: moderator Postów: 574 Zarejestrowany: Aug 2002
Jak przypuszczam, kod napisany przez Hicksa zadziała tylko pod WinXP. Tak więc można napisać ręcznie funkcje która będzie zmieniała formę na przeźroczystą. W VB nie będzie może za szybka ale będzie można zrobić aby kontrolki nie były przeźroczyste. Można to zrobić w taki sposób aby ze zrzutu ekranu pobierany był tylko region formy i żeby program zmieszał odpowiednio kolory. Takie coś widziałem na PSC. _____________________________________________Projekt "Thunder Cannons" nadchodzi...
02-09-2004 13:49
1220895
koala
Typ: neutral Postów: 9 Zarejestrowany: Nov 2003
Kod działa pod każdym sytemem ale nie w tym rzecz. Widziałem kiedyś taki progrm, coś w rodzaju kalendarz który miał okno przeźdoczyste natomiast pola symbolizujące dzień miesiąca nie były przeźroczyste, przeciwnie niż robi to powyższy przykład
03-09-2004 13:26
1333014
andrey Łódź
Typ: neutral Postów: 295 Zarejestrowany: Mar 2003
Witam,Drogi koalo kod hicksa nie działa pod każdym systemem. Używam Windows 98 SE i niestety funkcja API SetLayerdWindowAttributes nieznajduje sie w bibliotece user32.dll dostarczonej z tym systemem. Gdybyś spróbował uzyć powyższego kodu na systemach Win 95, 95 OSR 2, 98, 98 SE, Me edytor Vb podczas uruchamiania projektu wybił by błąd iż nie może odnaleźć wspomnianej funkcji w bibliotece user32.dll. Co do przezroczystości jak chcesz mogę ci podesłać sampel który działa na podobnej zasadzie którą opisał Chudy. Daj znać a sampel zostanie ci wysłany na mail.PozdrawiamAndrzej _____________________________________________A Methodical Approach to Error Handling: On Error GoTo Hell
11-09-2004 00:16
3078613
koala
Typ: neutral Postów: 9 Zarejestrowany: Nov 2003
Faktycznie pod 9x i NT nie działa, nie wiem dlaczego tak napisałem, coś musiałem pokręcić. Jak byś mógł przesłać mi ten przykład to byłbym wdzięczny, bo chcialbym zakończyć pracę nad moim prgramem.
14-09-2004 09:33
1333014
andrey Łódź
Typ: neutral Postów: 295 Zarejestrowany: Mar 2003
Witam,Przepraszam koala że tak długo zwlekałem z odpowiedzią na twoje pytanie ale byłem bardzo zapracowany (nadal jestem) i nie miałem jak kiedy spakować odpowiedniego sampla ale podaje ci link do zagranicznego forum VB na którym poruszyłem podobny temat http://www.maxvb.com/viewtopic.php?t=851Postaram sie jak najszybciej spakować ci inne sample i wysłać na email z którego do mnie napisałeśPozdrawiamAndrzej _____________________________________________A Methodical Approach to Error Handling: On Error GoTo Hell
14-09-2004 23:20
3078613
Viper87
Typ: neutral Postów: 490 Zarejestrowany: Oct 2002
Ja dysponuję przykładem działającym pod wszystkimi Winami i nie mającym półprzeźroczystych kontrolek. Wysyłam na maila. _____________________________________________Viper "Savoir c`est prevoir, prevoir c`est prevenir". (Wiedzieć to przewidzieć, przewidzieć to zapobiegać)
05-10-2004 21:47
Wszystkich odpowiedzi: 8 :: Maxymalnie na stronę: 20