[B+] Ausgrauen der Arbeitsfläche
Übersicht BlitzBasic DLLs und Userlibs
barratatorBetreff: [B+] Ausgrauen der Arbeitsfläche |
Mi, Mai 21, 2008 23:13 Antworten mit Zitat |
|
---|---|---|
Hallo,
ihr kennt es sicher von vielen Programmen, dass wenn ein wichtiger Vorgang gemacht wird, dass dann alles so grau wird. Dies hab' ich mal nachgeschrieben...Weiß nicht obs gebraucht wird... Als erstes folgendes in eine *.decls schreiben: Code: [AUSKLAPPEN] .lib "user32.dll" TSetWindowLong(hwnd,style,id) : SetWindowLongW TSetLayeredWindowAttributes(hwnd,crKey*,bAlpha,dwFlags) : SetLayeredWindowAttributes TInvalidateRect(hWnd,r,b) : InvalidateRect TSetClassLong(hWnd,flag, brush) : SetClassLongW .lib "Gdi32.dll" TCreateSolidBrush(rgb) : CreateSolidBrush Und jetzt der Quellcode: Code: [AUSKLAPPEN] Global twin Function grey_init() twin = CreateWindow("Dummy", 0, 0, 0, 0, 0, 0) SetBackgroundColor(QueryObject(twin,1),0,0,0) TSetWindowLong(GetActiveWindow(), -20, $80000) End Function Function grey_activate() bnk = CreateBank(8) SetGadgetShape twin, 0, 0, ClientWidth(Desktop()) , ClientHeight(Desktop()) For i = 0 To 220 Step 8 TSetLayeredWindowAttributes(QueryObject(twin,1), bnk,i,2) Delay 10 Next FreeBank bnk End Function Function grey_deactivate() bnk = CreateBank(8) For i = 220 To 0 Step -8 TSetLayeredWindowAttributes(QueryObject(twin,1), bnk,i,2) Delay 10 Next SetGadgetShape(twin, 0, 0, 0, 0) FreeBank bnk End Function Function SetBackgroundColor(hwnd,r,g,b) b = Int(TCreateSolidBrush(RGB(r,g,b))) TSetClassLong(hwnd,-10,b) TInvalidateRect(hwnd,0,1) End Function Function RGB(r,g,b) Return (r)+(g*256)+(b*65536) End Function Viel zu erklären gibt's nicht. Die Variable TWin muss Global deklariert sein, und bevor die Function Grey_Activate oder Grey_Deactivate benutz wird muss Grey_Init aufgerufen werden. Kurzes Beispiel: Code: [AUSKLAPPEN] Global twin grey_init() grey_activate() Delay 2000 grey_deactivate() Viel Spaß damit. gruß Bastian PS: Bitte verhaut mich nicht wegen meinen Programmierstil |
||
Phlox |
Fr, Mai 23, 2008 16:42 Antworten mit Zitat |
|
---|---|---|
Ich hab's versucht zu B3D umzuschreiben,
aber nun wird das Fenster durchsichtig Code: [AUSKLAPPEN] Global twin Function grey_init() twin = SystemProperty("AppHWND") SetBackgroundColor(SystemProperty("AppHWND"),0,0,0) TSetWindowLong(GetActiveWindow(), -20, $80000) End Function Function grey_activate() bnk = CreateBank(8) ;SetGadgetShape twin, 0, 0, apiGetSystemMetrics(0),apiGetSystemMetrics(1) For i = 0 To 220 Step 8 TSetLayeredWindowAttributes(SystemProperty("AppHWND"), bnk,i,2) Delay 40 Next FreeBank bnk End Function Function grey_deactivate() bnk = CreateBank(8) For i = 220 To 0 Step -8 TSetLayeredWindowAttributes(SystemProperty("AppHWND"), bnk,i,2) Delay 40 Next ;SetGadgetShape(twin, 0, 0, 0, 0) FreeBank bnk End Function Function SetBackgroundColor(hwnd,r,g,b) b = Int(TCreateSolidBrush(RGB(r,g,b))) TSetClassLong(hwnd,-10,b) TInvalidateRect(hwnd,0,1) End Function Function RGB(r,g,b) Return (r)+(g*256)+(b*65536) End Function ;Global twin grey_init() grey_activate() Delay 2000 grey_deactivate() |
||
ChristianK |
Fr, Mai 23, 2008 16:59 Antworten mit Zitat |
|
---|---|---|
Layered Windows und DirectX vertragen sich nicht so gut. | ||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
barratator |
Fr, Mai 23, 2008 17:27 Antworten mit Zitat |
|
---|---|---|
Joa, also wer nicht versteht wie es klappt:
Es erstellt ein Fenster welches über den ganzen Desktop geht, davon wird die Hintergrundfarbe auf Schwarz gesetz und jenachdem immer so stark auf Transparent gesetzt... gruß Bastian |
||
Übersicht BlitzBasic DLLs und Userlibs
Powered by phpBB © 2001 - 2006, phpBB Group