Des petits trous au passage de la souris
Publié : mer. 15/avr./2009 17:38
Coucou,
un petit délire
ce code fait des trous dans la fenêtre au passage de la souris
Amusez vous bien
un petit délire
ce code fait des trous dans la fenêtre au passage de la souris
Code : Tout sélectionner
; Auteur : Le Soldat Inconnu
; Version de PB : 4
;
; Explication du programme :
; Pour faire des programmes de test rapidement, il ne reste qu'a rajouter les gadgets et la gestion des évènements.
ProcedureDLL SetLayeredWindow2(WindowID.l, Alpha.l, Color.l) ; Transparence et forme de la fenêtre
Protected Parametre.l
SetWindowLong_(WindowID, #GWL_EXSTYLE, GetWindowLong_(WindowID, #GWL_EXSTYLE) | #WS_EX_LAYERED)
If Alpha > 0
Parametre | #LWA_ALPHA
Else
Alpha = 0
EndIf
If Color > 0
Parametre | #LWA_COLORKEY
Else
Color = 0
EndIf
SetLayeredWindowAttributes_(WindowID, Color, Alpha, Parametre)
EndProcedure
; Création de la fenêtre et de la GadgetList
If OpenWindow(0, 0, 0, 300, 300, "Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget) = 0
End
EndIf
; La couleur $FF00FF devient totalement transparente
; Donc si on dessine de la couleur $FF00FF sur la fenêtre, on fait des trous
; La veleur 200 est l'effet de transparence globale de la fenêtre, 0 donne invisible, et 255 complètement opaque
SetLayeredWindow2(WindowID(0), 200, $FF00FF)
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Menu
Select EventMenu() ; Menus
EndSelect
Case #PB_Event_Gadget
Select EventGadget() ; Gadgets
EndSelect
Case #WM_MOUSEMOVE
StartDrawing(WindowOutput(0))
Circle(WindowMouseX(0), WindowMouseY(0), 8, $FF00FF)
StopDrawing()
EndSelect
Until Event = #PB_Event_CloseWindow
End