Page 2 sur 3
Re: #WM_SIZING (notification)
Publié : mar. 11/sept./2012 13:22
par pat
Bonjour,
J'ai été un peu trop vite avec mon code car vous aurez des problèmes avec la fenêtre quand vous irez au bord supérieur de l'écran.
Voici le programme en entier avec les corrections apportées (et en plus c'est un peu plus court).
Code : Tout sélectionner
InitSprite();nécessaire pour l'exemple
Procedure WindowProc(hWnd,msg,wParam,lParam)
If msg=#WM_SIZING
GetWindowRect_(WindowID(0),old.rect)
long.w=old\right-old\left
haut.w=old\bottom-old\top
*st.rect=lParam
ecx.w=*st\right-*st\left-long
ecy.w=*st\bottom-*st\top-haut
If wParam=#WMSZ_LEFT or wParam=#WMSZ_RIGHT or wParam=#WMSZ_ BOTTOMRIGHT or wParam=#WMSZ_BOTTOMLEFT
pc.f=(ecx*100)/long
mt.f=(haut*pc)/100
*st\bottom=old\bottom+mt
Elseif wParam=#WMSZ_TOP or wParam=#WMSZ_BOTTOM
pc=(ecy*100)/haut
mt=(long*pc)/100
*st\right=old\right+mt
Elseif wParam=#WMSZ_TOPRIGHT or wParam=#WMSZ_TOPLEFT
pc=(ecx*100)/long
mt=(haut*pc)/100
If old\top-mt<0
*st\top=0
*st\bottom=old\bottom+mt
Else
*st\top=old\top-mt
Endif
Endif
Endif
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
;-------------------------------------
lgf.w=300;détermine la longueur de la fenêtre
htf.w=200;détermine la hauteur de la fenêtre
;vous pouvez changer ces valeurs à votre guise
;--------------------------------------
If OpenWindow(0,0,0,lgf,htf,"Redimensionne moi !",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget)
OpenWindowedScreen(WindowID(0),0,0,lgf,htf,1,0,0)
WindowBounds(0,lgf,htf,lgf*3,htf*3)
SmartWindowRefresh(0,1)
SetWindowCallback(@WindowProc())
LoadFont(1,"Arial",30,#PB_Font_Underline|#PB_Font_Bold)
StartDrawing(ScreenOutput())
DrawingFont(FontID(1))
DrawText(0,0,"TESTER",RGB(170,170,170),0)
StopDrawing
Repeat
Event=WaitWindowEvent()
Until Event=#PB_Event_CloseWindow
Endif
Re: #WM_SIZING (notification)
Publié : mar. 11/sept./2012 17:29
par Ar-S
Constante introuvable #WMSZ_LEFT
Re: #WM_SIZING (notification)
Publié : mar. 11/sept./2012 22:19
par Backup
chez moi ceci marche
valeur renvoyé = 1
Re: #WM_SIZING (notification)
Publié : mar. 11/sept./2012 23:26
par Ar-S
debug #WMSZ_LEFT marche mais pas le code

Re: #WM_SIZING (notification)
Publié : mar. 11/sept./2012 23:32
par Backup
normale !!
si tu avais utilisé EPB

tu aurai vu la coloration de la constante
#WMSZ_ BOTTOMRIGHT
(sur la meme ligne )
tu aurai alors vu qu'il y avait un espace entre _ B
donc c'est :#WMSZ_BOTTOMRIGHT (sans espace entre le _ et le B de BottomRight
tu aura une autre erreur de syntaxe sur "StopDrawing" il manque les Parentheses

Re: #WM_SIZING (notification)
Publié : mar. 11/sept./2012 23:41
par Ar-S
Bien vu Dobro.
Bah alors Pat c'est quoi ce foutoir !
Le code sans ces petites omissions.
Code : Tout sélectionner
InitSprite();nécessaire pour l'exemple
Procedure WindowProc(hWnd,msg,wParam,lParam)
If msg=#WM_SIZING
GetWindowRect_(WindowID(0),old.rect)
long.w=old\right-old\left
haut.w=old\bottom-old\top
*st.rect=lParam
ecx.w=*st\right-*st\left-long
ecy.w=*st\bottom-*st\top-haut
If wParam=#WMSZ_LEFT Or wParam=#WMSZ_RIGHT Or wParam=#WMSZ_BOTTOMRIGHT Or wParam=#WMSZ_BOTTOMLEFT
pc.f=(ecx*100)/long
mt.f=(haut*pc)/100
*st\bottom=old\bottom+mt
ElseIf wParam=#WMSZ_TOP Or wParam=#WMSZ_BOTTOM
pc=(ecy*100)/haut
mt=(long*pc)/100
*st\right=old\right+mt
ElseIf wParam=#WMSZ_TOPRIGHT Or wParam=#WMSZ_TOPLEFT
pc=(ecx*100)/long
mt=(haut*pc)/100
If old\top-mt<0
*st\top=0
*st\bottom=old\bottom+mt
Else
*st\top=old\top-mt
EndIf
EndIf
EndIf
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
;-------------------------------------
lgf.w=300;détermine la longueur de la fenêtre
htf.w=200;détermine la hauteur de la fenêtre
;vous pouvez changer ces valeurs à votre guise
;--------------------------------------
If OpenWindow(0,0,0,lgf,htf,"Redimensionne moi !",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget)
OpenWindowedScreen(WindowID(0),0,0,lgf,htf,1,0,0)
WindowBounds(0,lgf,htf,lgf*3,htf*3)
SmartWindowRefresh(0,1)
SetWindowCallback(@WindowProc())
LoadFont(1,"Arial",30,#PB_Font_Underline|#PB_Font_Bold)
StartDrawing(ScreenOutput())
DrawingFont(FontID(1))
DrawText(0,0,"TESTER",RGB(170,170,170),0)
StopDrawing()
Repeat
event=WaitWindowEvent()
Until event=#PB_Event_CloseWindow
EndIf
P.S : le code fonctionne bien
Re: #WM_SIZING (notification)
Publié : mar. 11/sept./2012 23:41
par Backup
il doit etre bourré
bien cool ce code Merci

Re: #WM_SIZING (notification)
Publié : mer. 12/sept./2012 7:03
par Mindphazer
Dobro a écrit :il doit etre bourré

Si je me souviens bien de ses précédents posts, Pat avait expliqué que son ordi n'avait pas de connexion internet du coup sur le forum pour poster des codes il est obligé de les taper à la mano (et inversement, pour récupérer des codes il les recopie à la main)
Pat, si tu passes par là....
Re: #WM_SIZING (notification)
Publié : mer. 12/sept./2012 7:44
par Backup
heu .. les clef USB ça existe

meme dans un cyber café ... c'est jouable
a un moment T , il est bien obligé d'etre connecté au NEt
pour ecrire sur le forum ... c'est donc a ce moment qu'il pourrait utiliser une
Clef Usb me semble t'il
ecrire a la main, et recopier a la main, c'est un peu dingue de nos jours
voici ce qu'il ecrit
Pat a écrit :Ne me demandez pas de vous envoyer une image car l'Internet que j'utilise est complètement bridé (pas de téléchargement possible, pas de clé USB, pas de possibilité de lire des fichiers PDF, etc.).
heu .. c'est un minitel ??

Re: #WM_SIZING (notification)
Publié : mer. 12/sept./2012 11:53
par pat
Bonjour,
Pour vous répondre, et comme je l'ai expliqué plusieurs fois, je vais dans un lieu public qui possède Internet mais dont l'accès est particulièrement bridé. Donc je peux lire des mails, envoyer des messages mais je ne peux rien envoyer par téléchargement et je n'ai pas la possibilité d'utiliser de clé USB car tout est bridé.
Bref, un Internet particulièrement bridé et peu performant. Pour vous dire également que le lieux public où je vais habituellement à Internet Explorer 6 et ne va pas plus loin et bien évidemment je ne peux pas décider quoi que ce soit. C'est gratuit donc on se la ferme.
Par contre, quelques fois par an, je vais télécharger PB pour mettre à jour le logiciel. Mais ça c'est beaucoup plus rare et bien évidemment je vais ailleurs pour le faire.
Vous comprendrez donc que j'ai tapé le code et pour la correction, j'ai du faire un copier/coller et rectifier le code manuellement. Donc s'il y a quelques fautes, c'est bien normal mais le code devrait bien fonctionner.
Re: #WM_SIZING (notification)
Publié : mer. 12/sept./2012 13:31
par Mindphazer
Sans vouloir être désagréable, en 2012, avoir un ordinateur à la maison sans connexion internet c'est, comment dire..... un anachronisme ?
Re: #WM_SIZING (notification)
Publié : mer. 12/sept./2012 13:36
par pat
A Mindphazer.
J'ai fait ce choix de ne pas avoir Internet chez moi pour une question financière.
J'ai besoin d'utiliser peu Internet et donc je ne vois pas pourquoi je paierais tous les mois quelque chose que j'utilise que ponctuellement.
En tout cas le fait de ne pas avoir Internet chez moi ne m'empêche pas d'apprécier PB et de faire quelques programmes.
Re: #WM_SIZING (notification)
Publié : mer. 12/sept./2012 13:43
par Mindphazer
Ok
C'est un choix... étrange, mais c'est ton choix !
Re: #WM_SIZING (notification)
Publié : mer. 12/sept./2012 13:47
par pat
Dans ces temps difficiles que nous vivons : chômage, précarité... c'est une solution pour diminuer la note....
Re: #WM_SIZING (notification)
Publié : mer. 12/sept./2012 13:55
par Ar-S
On a pas tous les moyens de se payer le net, c'est ainsi. Y'a pas matière à polémiquer, on fait ce qu'on peut avec ce qu'on a.
en tout cas Pat t'embête pas tu as du voir que dobro a relevé les petites erreurs et j'ai posté le code corrigé.
Comme ça pas de soucis.
