Gestion Skin
Gestion Skin
J'utilise la lib skinwin, mais j'ai quelques problème :
- Impossible de déplacer les fenêtres
- Les gadget normal sont mal affiché (présence du fond)
une idée ?
Merci
- Impossible de déplacer les fenêtres
- Les gadget normal sont mal affiché (présence du fond)
une idée ?
Merci
Bizarre, j'ai jamais eu de problème avec cette lib.
Normalement, si tu as fait ta fenêtre comme ça, (ou quelque chose dans le même style):
ça doit fonctionner.
Ca vient peut-être de ton image
Pour le déplacement, tu n'as qu'à mettre ça au début de la boucle:
Normalement, si tu as fait ta fenêtre comme ça, (ou quelque chose dans le même style):
Code : Tout sélectionner
OpenWindow(#Window_0, 0, 0, 300, 400, #PB_Window_ScreenCentered|#PB_Window_Invisible|#PB_Window_BorderLess , "",0)
SkinWin(WindowID(#Window_0),UseImage(hFond))
HideWindow(#Window_0,0)
Ca vient peut-être de ton image
Pour le déplacement, tu n'as qu'à mettre ça au début de la boucle:
Code : Tout sélectionner
Repeat
Select WindowEvent()
Case #WM_LBUTTONDOWN
SendMessage_(WindowID(#Window_0), #WM_NCLBUTTONDOWN, #HTCAPTION, 0)
Code : Tout sélectionner
Les gadget normal sont mal affiché (présence du fond)


Dsl pour la faute, mais ça ne marche pas quand même...
Voici le zip avec le code + image, le problème c'est que les gadgets ne sont pas transparents (box test) avec le fond..
Merci Chris pour le déplacement de la fenêtre mais il arrive qu'elle reste bloqué..
http://heisspiter.no-ip.com/~julien/Pur ... s/skin.zip


Voici le zip avec le code + image, le problème c'est que les gadgets ne sont pas transparents (box test) avec le fond..
Merci Chris pour le déplacement de la fenêtre mais il arrive qu'elle reste bloqué..
http://heisspiter.no-ip.com/~julien/Pur ... s/skin.zip
Pour la fenêtre qui reste bloquée, retire un des deux WindowEvent(), et ça fonctionne mieux.
Pour la transparence, alors là ???
Le plus simple serait sans doute que tu mettes le texte de certain gadgets directement sur l'image, (Cases à cocher, Text, Boutons d'options, etc...), parce que je ne vois pas comment faire.
Code : Tout sélectionner
Repeat
;WaitWindowEvent() ;<--- Il faut choisir, c'est un, ou l'autre
Select WindowEvent() ;<---
Case #WM_LBUTTONDOWN
SendMessage_(WindowID(#Window_0), #WM_NCLBUTTONDOWN, #HTCAPTION, 0)
Le plus simple serait sans doute que tu mettes le texte de certain gadgets directement sur l'image, (Cases à cocher, Text, Boutons d'options, etc...), parce que je ne vois pas comment faire.
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
tu peux utiliser ma lib ButtonImageGadget pour faire tous les objets de ta fen.
c'est ce que j'ai fait par exemple sur ma calculatrice pour les boutons ou sur mon bi-exploreur
en clair pour une chekbox gadget, tu fais deux images, l'une avec la boite coché et l'autre sans
et quand on clique sur le bouton, tu changes l'image.
après, tu peux également passé par des gadget OwnerDraw, c'est compliqué au possible mais faisable
c'est ce que j'ai fait par exemple sur ma calculatrice pour les boutons ou sur mon bi-exploreur
en clair pour une chekbox gadget, tu fais deux images, l'une avec la boite coché et l'autre sans
et quand on clique sur le bouton, tu changes l'image.
après, tu peux également passé par des gadget OwnerDraw, c'est compliqué au possible mais faisable
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Tout ce que je peux te proposer, c'est ça

Code : Tout sélectionner
Enumeration
#Window_0
EndEnumeration
;- Gadget Constants
;
Enumeration
#CheckBox_0
#CheckBox_1
#CheckBox_2
#Button_0
EndEnumeration
Enumeration
#ImageFond
EndEnumeration
FontStd = LoadFont(#PB_Any,"Arial",10)
Procedure SetText(Image,Text$,x,y,w,h,Font)
hImageText = GrabImage(Image, #PB_Any,x,y,w,h)
StartDrawing(ImageOutput()) : DrawingMode(1) : DrawingFont(UseFont(Font))
DrawText(Text$)
StopDrawing()
UseImage(Image)
StartDrawing(WindowOutput())
DrawImage(UseImage(hImageText),x,y)
StopDrawing()
FreeImage(hImageText)
EndProcedure
hwnd=OpenWindow(#Window_0,10,10, 320, 95,#PB_Window_ScreenCentered|#PB_Window_Invisible|#PB_Window_BorderLess, "New window ( 0 )")
hBitmap = LoadImage(#ImageFond,"fond.bmp")
If CreateGadgetList(WindowID())
CheckBoxGadget(#CheckBox_0, 10,30, 15, 15, "")
CheckBoxGadget(#CheckBox_1, 10,50, 15, 15, "")
CheckBoxGadget(#CheckBox_2, 10,70, 15, 15, "")
ButtonGadget(#Button_0, 230, 30, 70, 60, "OK")
EndIf
SkinWin(hwnd, hBitmap)
HideWindow(#Window_0,0)
SetText(#ImageFond,"Test1",40,30,60,15,FontStd)
SetText(#ImageFond,"Test2",40,50,60,15,FontStd)
SetText(#ImageFond,"Test3",40,70,60,15,FontStd)
Repeat
Select WindowEvent()
Case #WM_LBUTTONDOWN
SendMessage_(WindowID(#Window_0), #WM_NCLBUTTONDOWN, #HTCAPTION, 0)
Case #PB_Event_Gadget
Select EventGadgetID()
Case #CheckBox_0
If GetGadgetState(#CheckBox_0) = 1
SetText(#ImageFond,"Coché",40,30,60,15,FontStd)
ElseIf GetGadgetState(#CheckBox_0) = 0
SetText(#ImageFond,"Décoché",40,30,60,15,FontStd)
EndIf
Case #CheckBox_1
If GetGadgetState(#CheckBox_1) = 1
SetText(#ImageFond,"Coché",40,50,60,15,FontStd)
ElseIf GetGadgetState(#CheckBox_1) = 0
SetText(#ImageFond,"Décoché",40,50,60,15,FontStd)
EndIf
Case #CheckBox_2
If GetGadgetState(#CheckBox_2) = 1
SetText(#ImageFond,"Coché",40,70,60,15,FontStd)
ElseIf GetGadgetState(#CheckBox_2) = 0
SetText(#ImageFond,"Décoché",40,70,60,15,FontStd)
EndIf
Case #Button_0 : Quit = #True
EndSelect
EndSelect
Until Quit