Page 1 sur 1

Fenetre transparente en win98

Publié : lun. 13/nov./2006 13:05
par Kwai chang caine
Bonjour a tous

J'ai trouvé ce splendide code :10: sur le forum us de netmaestro:

http://www.purebasic.fr/english/viewtop ... ransparent

Code : Tout sélectionner

OpenWindow(0,0,0,320,240,"",#PB_Window_ScreenCentered|#PB_Window_BorderLess) 
SetWindowLong_(WindowID(0),#GWL_EXSTYLE,GetWindowLong_(WindowID(0),#GWL_EXSTYLE)|#WS_EX_LAYERED) 
SetLayeredWindowAttributes_(WindowID(0),RGB(255,0,255),0,#LWA_COLORKEY) 
SetWindowColor(0,RGB(255,0,255)) 
CreateGadgetList(WindowID(0)) 
ButtonGadget(0,300,0,20,20,"X") 
StickyWindow(0,1) 

CreateImage(0,32,32) 
StartDrawing(ImageOutput(0)) 
  Box(0,0,32,32,RGB(255,0,255)) 
  Box(12,0,6,32,0) 
  Box(0,12,32,6,0) 
StopDrawing() 

ImageGadget(1,0,0,0,0,ImageID(0)) 
DisableGadget(1,1) 

quit = 0 
Repeat 
  ev = WaitWindowEvent() 
  Select ev 
    Case #WM_LBUTTONDOWN 
      SendMessage_(WindowID(0),#WM_NCLBUTTONDOWN,#HTCAPTION,0) 
    Case #PB_Event_Gadget 
      If EventGadget()=0 
        quit = 1 
      EndIf 
  EndSelect 
Until quit 
Il marche super sur w2000, j'aimerais savoir si c'est le cas avec W98.
Est ce quelqu'un a encore cet OS et peux l'essayer ??
Merci d'avance, car je voudrais etre sur si je l'utilise que mon appli ne plante pas a cause de ce code sur certaines machines.

Au passage, si quelqu'un a des remarques à faire, quant à la compatibilité, la fiabilité, ou autre, j'aimerais bien connaitre votre avis de connaisseur. :wink:
Car je vais baser mon prochain programme sur ce genre de code.

Merci a tous.
Bonne journée

Re: Fenetre transparente en win98

Publié : lun. 13/nov./2006 13:54
par gnozal
Kwai chang caine a écrit :Il marche super sur w2000, j'aimerais savoir si c'est le cas avec W98.
Selon M$, non.

Minimum operating systems : Windows 2000
cf. http://msdn.microsoft.com/library/defau ... ibutes.asp

Publié : lun. 13/nov./2006 13:59
par Kwai chang caine
Merci gnozal pour l'info. 8)

Autrement, comment trouve tu ce code ???
Y aurais t'il un equivalent qui fonctionne sur tous les OS ???

Encore merci
Bonne journée

Publié : lun. 13/nov./2006 17:27
par Flype
Salut,

Ce code est très connu - ou plutot cette fonction Microsoft << SetLayeredWindowAttributes >> le reste n'étant que paramêtrage.

Par contre bah non désolé c'est la seule méthode et elle n'est applicable seulement que depuis Win2000.

Publié : lun. 13/nov./2006 18:12
par Kwai chang caine
Bonjour flype.

Dommage, c'etait trop top pour etre vrai :lol:
On se contentera de W2000

Je vais essayer de me rabattre sur le code de DOBRO qui est tres tres bien aussi :

http://purebasic.hmt-forum.com/viewtopi ... ente+dobro

Par contre chez moi qd je déplace la fenetre, ça fait des barres noires: 8O
Je lui ai posé la question, et j'attend sa reponse avec impatience..........

Bonne journée
Et encore merci

Publié : mar. 14/nov./2006 4:14
par Backup
Kwai chang caine a écrit :Bonjour flype.

Dommage, c'etait trop top pour etre vrai :lol:
On se contentera de W2000

Je vais essayer de me rabattre sur le code de DOBRO qui est tres tres bien aussi :

http://purebasic.hmt-forum.com/viewtopi ... ente+dobro

Par contre chez moi qd je déplace la fenêtre, ça fait des barres noires: 8O
Je lui ai posé la question, et j'attend sa reponse avec impatience..........

Bonne journée
Et encore merci
toujours pareil , le problème des aplis fenêtré, c'est de ne pas pouvoir avoir accès au VBL :?
un accès au VBL aurai pu limiter le problème :D
j'ai également ce genre de problème avec mon Horloge
:?

le problème vient du fait que j'utilise un rapide changement de taille de la fenêtre pour forcer le Redraw
car je ne connais pas l'api qui force un Redraw de fenêtre :?

ce changement de taille n'est pas ideal, car cela crée un phénomène de scintillement du a la désyncro avec la VBL

si quelqu'un connais un moyen pour forcer le redraw d'une fenêtre sans
faire appel a un changement de taille, n'hésitez surtout pas :D

Publié : mar. 14/nov./2006 12:46
par Kwai chang caine
Dobro a écrit :si quelqu'un connais un moyen pour forcer le redraw d'une fenêtre sans
faire appel a un changement de taille, n'hésitez surtout pas :D
une chose est sure......y'en a au moins un qui n'a pas la solution.......
C'EST MOI :lol: :lol: :lol: :lol:

Bonne journée à toi et merci de ta reponse DOBRO