Page 2 sur 2
Publié : lun. 15/août/2005 15:57
par lionel_om
C'est bon j'ai en gros réglé mes problèmes. J'avais plusieurs endroits problèmatiques et en faisant des tests j'ai réussit à trouver les bugs.
Par contre pour le CallBack(), j'ai tjrs un pb dont je n'ai pas parlé avant :
j'ai un
ScrollAreaGadget et je n'arrive pas à le texturer (lui donner une couleur d'arrière plan).
J'ai rajouter ceci dans mon WinCB() :
mais à aucun moment le debug n'est pris en compte. Ca veut dire qu'on ne peut pas skinner les ScrollAreaGadget ???
Merci d'ores et déjà pour toutes vos réponses

Publié : lun. 15/août/2005 16:30
par nico
La méthode pour résoudre ce genre de problème est la suivante:
Rechercher le handle de la fenêtre avec un spy.(Super macro par ex:)
A partir de là on se rend compte que le Handle retournée par la fonction:
Handle=ScrollAreaGadget(0, 10, 10,290,120, 375, 155, 30)
n'est pas celle que l'on souhaite, en fait c'est la fenêtre parent.
Retrouver le handle de la fenêtre fille avec la fonction FindWindowEx en lui indiquant comme paramètres le handle de la fenêtre parent et le nom de la classe de la fenêtre fille que le spy nous fournit.
Ensuite avec le handle de la fenêtre fille, on peut facilement changer sa couleur de fond avec la fonction suivante:
hbrush=CreateSolidBrush_(RGB(255,0,0))
SetClassLong_(handle_fille,#GCL_HBRBACKGROUND,hbrush)
Publié : lun. 15/août/2005 16:52
par nico
Ce qui donne en reprenant un exemple de Pure:
Code : Tout sélectionner
If OpenWindow(0,0,0,305,140,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"ScrollAreaGadget") And CreateGadgetList(WindowID(0))
Handle=ScrollAreaGadget(0, 10, 10,290,120, 375, 155, 30)
handle_fille=FindWindowEx_(Handle,0,"PureScrollAreaChild","")
hbrush=CreateSolidBrush_(RGB(255,0,255))
SetClassLong_(handle_fille,#GCL_HBRBACKGROUND,hbrush)
ButtonGadget (1, 10, 10,230, 30,"Button 1")
ButtonGadget (2, 50, 50,230, 30,"Button 2")
ButtonGadget (3, 90, 90,230, 30,"Button 3")
TextGadget (4,130,130,230, 20,"This is the content of a ScrollAreaGadget!",#PB_Text_Right)
CloseGadgetList()
SetWindowTitle(0,Str(Handle)+" "+Str(handle_fille))
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
Case #PB_Event_Gadget
Select EventGadgetID()
Case 1
MessageRequester("Info","Le bouton 1 a été pressé !",#PB_MessageRequester_Ok)
Case 2
MessageRequester("Info","Le bouton 2 a été pressé !",#PB_MessageRequester_Ok)
Case 3
MessageRequester("Info","Le bouton 3 a été pressé !",#PB_MessageRequester_Ok)
EndSelect
EndSelect
ForEver
EndIf
Publié : lun. 15/août/2005 17:15
par lionel_om
Merci Nico pour cet exemple.
(J'étais en train de chercher depuis toute à l'heure sur des sites dont la plupart n'étaient pas sur PB).
Publié : lun. 15/août/2005 17:24
par lionel_om
C'est bon j'ai réussit (pas trop de mérite, car l'exemple était suffisament clair)...
Je vais regarder pour skinner les accenseurs du ScrollAreaGadget et les boutons. Ca doit être la même démarche je pense.
Merci bien en tout cas !!!
