Page 1 sur 1
SendMessage_
Publié : jeu. 30/avr./2009 18:45
par venom
Bonjour,
voila sa m'arrive de me servir des API'S et la blocage
en se moment je me sert de
SendMessage
sur un des bouton j'ai :
Code : Tout sélectionner
SendMessage_(WindowID(#Window_0), #WM_NCLBUTTONDOWN, #HTCAPTION, 0)
ce code permet de déplacer la fenetre ID ave la souris. cela fonctionne très bien en purebasic 4.30 beta 5
et juste en dessous :
Code : Tout sélectionner
SendMessage_(WindowID(#Window_0), #WM_NCLBUTTONDOWN, #HTREDUCE, 0)
ce code la permet de réduire la fenêtré ID pourtant dans le même code il ne fonctionne plus

quelqu'un a une alternative ou c'est seulement chez moi ?
un petit code complet pour prouvé :
Code : Tout sélectionner
;- Window Constants
Enumeration
#Window_0
EndEnumeration
If OpenWindow(#Window_0, 0, 0, 600, 250, "", #PB_Window_ScreenCentered|#PB_Window_BorderLess)
If LoadImage(0, "une image")
ImageGadget(0, 10, 10, 30, 30, ImageID(0))
EndIf
If LoadImage(1, "une image")
ImageGadget(1, 10, 50, 30, 30, ImageID(1))
EndIf
EndIf
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget
Select EventGadget()
Case 0
SendMessage_(WindowID(#Window_0), #WM_NCLBUTTONDOWN, #HTCAPTION, 0)
Case 1
SendMessage_(WindowID(#Window_0), #WM_NCLBUTTONDOWN, #HTREDUCE, 0)
EndSelect
EndIf
Until EventID = #PB_Event_CloseWindow
@++
Publié : jeu. 30/avr./2009 21:02
par Backup
oui c'est curieux !!
meme en utilisant l'autre constante çà marche pas !
ici j'ai ajouté le bouton minimiser sur la fenêtre
on vois bien que l'appui sur l'image active le bouton
mais semble sans effet , on dirai qu'il manque le clic effectif
comme si on survolais le bouton en fait !
faut peut être capturer la souris sur l'image
pour que le clic soit interprété
Code : Tout sélectionner
;- Window Constants
UseJPEGImageDecoder()
Enumeration
#Window_0
EndEnumeration
If OpenWindow(#Window_0, 0, 0, 600, 250, "", #PB_Window_ScreenCentered|#PB_Window_BorderLess|#PB_Window_MinimizeGadget)
If LoadImage(0, "C:\Dobro\Mes_Photos\fond_ecran\1zerr2.jpg")
ResizeImage(0,30,30)
ImageGadget(0, 10, 10, 30, 30, ImageID(0))
EndIf
If LoadImage(1, "C:\Dobro\Mes_Photos\fond_ecran\177.jpg")
ResizeImage(1,30,30)
ImageGadget(1, 100, 10, 30, 30, ImageID(1))
EndIf
EndIf
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget
Select EventGadget()
Case 0
SendMessage_(WindowID(#Window_0), #WM_NCLBUTTONDOWN, #HTCAPTION, 0)
Case 1
SendMessage_(WindowID(#Window_0), #WM_NCLBUTTONDOWN,#HTMINBUTTON, 0)
Debug "ok"
EndSelect
EndIf
Until EventID = #PB_Event_CloseWindow
Publié : ven. 01/mai/2009 2:23
par venom
oui en effet ont voie bien le bouton minimisé s'activé mais rien ne se passe c'est bizarre.
après il reste la manipulation de rendre la fenêtré invisible mais bon autant ce servir de chose déjà fait. surtout que sa fonctionner bien avant.
@++
Publié : ven. 01/mai/2009 2:50
par Ollivier
Code : Tout sélectionner
;- Window Constants
Enumeration
#Window_0
EndEnumeration
If OpenWindow(#Window_0, 0, 0, 600, 250, "", #PB_Window_ScreenCentered|#PB_Window_BorderLess)
If LoadImage(0, "")
ImageGadget(0, 10, 10, 30, 30, ImageID(0))
EndIf
If LoadImage(1, "")
ImageGadget(1, 10, 50, 30, 30, ImageID(1))
EndIf
EndIf
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget
Select EventGadget()
Case 0
SendMessage_(WindowID(#Window_0), #WM_NCLBUTTONDOWN, #HTCAPTION, 0)
Case 1
SetWindowState(#Window_0, #PB_Window_Minimize)
EndSelect
EndIf
Until EventID = #PB_Event_CloseWindow
Publié : ven. 01/mai/2009 3:05
par venom
merci du code Ollivier,
je sais qu'il y a plusieurs façon de faire ce que je demande mais ce que je ne comprend pas c'est que j'ai toujours fait ainsi et sa fonctionner.
c'est pour sa que j'ai posté dans le rapport. en attendant, je vais trouvé une alternative.
merci
@++
Publié : ven. 01/mai/2009 11:31
par Backup
oui bien sur
mais il en reste pas moins que sendmessage_deconne !
tu devrai en parler sur le forum anglais , histoire de ....

Publié : ven. 01/mai/2009 13:58
par venom
tu devrai en parler sur le forum anglais , histoire de ....
oui mais si une personne bilingue pourrai s'en charger, j'avoue que sa m'arrangerai bien si non je le posterai bientôt.
@++
Publié : lun. 04/mai/2009 14:26
par Fred
Y'a peu de chance que ce soit SendMessage_() qui déconne, etant donné qu'elle est utilisée partout (et son appel ne change pas, c'est juste les parametres passés). Peut etre que quelque chose a été modifié dans la lib 'window' et qui affecte le sendmessage_().
Publié : lun. 04/mai/2009 15:08
par Backup
Publié : lun. 04/mai/2009 21:52
par Le Soldat Inconnu
je me disais, l'action se fait quand le bouton remonte, et pas quand le bouton descend.
Mais ça ne change rien.
Code : Tout sélectionner
;- Window Constants
Enumeration
#Window_0
EndEnumeration
If OpenWindow(#Window_0, 0, 0, 600, 250, "", #PB_Window_ScreenCentered|#PB_Window_BorderLess|#PB_Window_SystemMenu|#PB_Window_MinimizeGadget)
CreateImage(0, 30, 30)
CreateImage(1, 30, 30)
ImageGadget(0, 10, 10, 30, 30, ImageID(0))
ImageGadget(1, 10, 50, 30, 30, ImageID(1))
EndIf
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget
Select EventGadget()
Case 0
SendMessage_(WindowID(#Window_0), #WM_NCLBUTTONDOWN, #HTCAPTION, 0)
Case 1
SendMessage_(WindowID(#Window_0), #WM_NCLBUTTONUP, #HTREDUCE, 0)
EndSelect
EndIf
Until EventID = #PB_Event_CloseWindow
Publié : lun. 04/mai/2009 22:03
par Backup
oui

j'avais deja essayé
je pense que Fred a du regarder ça
