Venster transparant maken

Alles over het toepassen van API en DLL's in Liberty BASIC

Moderator: anthonio

Venster transparant maken

Berichtdoor anthonio » zo aug 17, 2008 8:58 pm

De code die volgt maakt gebruik van 2 foto's waarvan de ene transparant word.
De mogenlijkheden hiermee zijn oneindig.
Experimenteer ermee zou ik zeggen.
Ook heb ik een ander klein voorbeeldje bijgevoegd.
Het is een stukje geknipt uit een code van gordon, waarvoor dank.

Code: Selecteer alles
'Written by anthonio (andy)
'Original from gordon (libertybasic.nl)

nomainwin

graphicbox #main.1 ,0 ,0 ,800 ,600
button #main, "Test", [Test], UL, 10, 10
statictext #main, "Voorbeeld", 10, 60, 70, 30
open "Test" for window as #main

hwnd1 = hwnd(#main)

calldll #kernel32, "Sleep",500 as long, re as void
for i = 255 to 0 step -2
call MakeWindowTransparent hwnd1, i
calldll #kernel32, "Sleep",50 as long, re as void
next i
calldll #kernel32, "Sleep",1000 as long, re as void
close #main
end

[Test]
wait

sub MakeWindowTransparent hwnd, transparency
calldll #user32, "GetWindowLongA", hwnd as ulong, -20 as long,_
r as long
x = r or 524288
calldll #user32, "SetWindowLongA", hwnd as ulong, -20 as long,_
x as long, r as long
calldll #user32, "SetLayeredWindowAttributes", hwnd as ulong,_
0 as long, transparency as long, 2 as long, r as long
end sub


Bijlagen
fotos.zip
.bas bestand met foto's (voorbeeld van bovenvermelde code)
(1.34 MiB) 180 keer gedownload
Dual boot: Ubuntu 8.04 - WIndows XP SP2 (via VMware) - Windows Vista 32bit - Toshiba L40 - Dual Core @ 1,76GHz - 1GB RAM - 120GB HDD - VDSL Connection
Avatar gebruiker
anthonio
 
Berichten: 281
Geregistreerd: zo mei 20, 2007 9:58 pm

Keer terug naar API/DLL

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers. en 1 gast

cron