Page 1 sur 3

#WM_SIZING (notification)

Publié : mar. 04/sept./2012 13:29
par pat
Bonjour,

Si vous ouvrez le Solitaire (ou un autre jeux de cartes) (fourni avec Windows), vous pouvez redimensionner la fenêtre. Si par exemple vous n'étirez la fenêtre que vers la droite, la fenêtre s'étirera quand même vers le bas.
Normal, les programmeurs ont voulu que la fenêtre soit proportionnelle.
Je voudrais faire pareil.
Avec #WM_SIZING (notification), on sait quand l'utilisateur est en train de redimensionner la fenêtre.
Les APIs sont très utiles, mais faut-il bien savoir les utiliser.
Voici quelques lignes de code, mais qui ne fonctionnent pas.
Mais qu'est-ce qui ne va pas ?

Code : Tout sélectionner

Procedure WindowProc(hWnd,msg,wParam,lParam)
  If msg=#WM_SIZING
    ecartx.w=WindowWidth(0)-300
    ecarty.w=WindowHeight(0)-300
   If Abs(ecartx)>Abs(ecarty)
     ecarty=ecartx
   Else
     ecartx=ecarty
   Endif
  Define PointCourant.rect
  *PointCourant.rect=@PointCourant
  PointCourant\left=WindowX(0)
  PointCourant\top=WindowY(0)
  PointCourant\right=WindowX(0)+300+ecartx
  PointCourant\bottom=WindowY(0)+300+ecarty
  lParam=*PointCourant.rect
 Endif
 ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
;-----------------------------
If OpenWindow(0,0,0,300,300,"Redimensionne  moi !",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget)
 WindowBounds(0,200,200,600,600)
 SetWindowCallback(@WindowProc())
 Repeat
  Event=WaitWindowEvent()
 Until Event=#PB_Event_CloseWindow
Endif
[\code]

Comme j'ai tapé le texte, il se pourrait qu'il y ait une faute un deux.
La structure RECT est déjà existante dans PB.
lParam est bien égal à une adresse mais est-ce la bonne ?
J'ai certainement loupé quelque chose dans les APIs, mais quoi !

Merci à ceux qui savent et qui souhaiteraient m'aider.

Re: #WM_SIZING (notification)

Publié : mar. 04/sept./2012 14:44
par Ar-S
Voilà une solution qui sans être complète te permet de voir un callback fonctionnel.
Le redimensionnement se fait au relâchement de la souris.

En espérant que ça t'aide.

Code : Tout sélectionner



Define EventID

Procedure MyWindowCallback(WindowID, Message, wParam, lParam) 
	Result = #PB_ProcessPureBasicEvents 
	Select Message 
    Case #WM_LBUTTONDOWN 
      NewWx = WindowWidth(0)
      NewWy = WindowHeight(0)
      
  EndSelect 
	ProcedureReturn Result 
EndProcedure 

	hwnd = OpenWindow(0,0,0,500,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget)
  
  SetWindowCallback(@MyWindowCallback()) 
  
  
  Repeat
    
    
    EventID=WaitWindowEvent()
    
    Debug " Event = "+Str(EventID) 
    
    
    
    Select EventID
    
      Case 512 ;(512 = redim fenetre)
      NewWx = WindowWidth(0)
      NewWy = WindowHeight(0)
      
      
      
    Case 514
      Debug "Bouton gauche relaché : event 514" ; relache bouton gauche
      If NewWx <> Wx
        ResizeWindow(0,#PB_Ignore,#PB_Ignore,NewWx,NewWx)
        Wx = NewWx
      Else
        ResizeWindow(0,#PB_Ignore,#PB_Ignore,NewWy,NewWy)
        Wy = NewWy
      EndIf
      
    Case #PB_Event_CloseWindow
      End
  EndSelect
  
  ForEver

Liste d'event qui peuvent servir dans ton callback

Code : Tout sélectionner


Select Message 
	Case #WM_LBUTTONUP         : Debug "mouse LMB up" 
	Case #WM_LBUTTONDOWN       : Debug "mouse LMB down" 
	Case #WM_RBUTTONUP         : Debug "mouse RMB up" 
	Case #WM_RBUTTONDOWN       : Debug "mouse RMB down" 
	Case #WM_MBUTTONUP         : Debug "mouse MMB up" 
	Case #WM_MBUTTONDOWN       : Debug "mouse MMB down" 
	Case #WM_LBUTTONDBLCLK     : Debug "mouse LMB double-click" 
	Case #WM_RBUTTONDBLCLK     : Debug "mouse RMB double-click"     
	Case #WM_MBUTTONDBLCLK     : Debug "mouse MMB double-click" 
	Case #WM_MOUSEWHEEL        : Debug "mouse wheel" 
	Case #WM_MOUSEMOVE         : Debug "mouse move" 
	Case #WM_MOUSELEAVE        : Debug "mouse leave" 
	Case #WM_MOUSELAST         : Debug "mouse last" 
	Case #WM_MOUSEHOVER        : Debug "mouse hover" 
	Case #WM_MOUSEFIRST        : Debug "mouse first" 
	Case #WM_MOUSEACTIVATE     : Debug "mouse activate" 
	 
	Case #WM_NCMOUSEMOVE       : Debug "NC mouse move" 
	Case #WM_NCLBUTTONDOWN     : Debug "NC mouse LMB" 
	 
	Case #WM_KEYDOWN           : Debug "key down" 
	Case #WM_KEYUP             : Debug "key UP" 
	Case #WM_CHAR              : Debug "char" 
	 
	Case #WM_PAINT             : Debug "win paint" 
	Case #WM_MOVING            : Debug "win moving" 
	Case #WM_SIZING            : Debug "win sizing" 
	Case #WM_MOVE              : Debug "win moved" 
	Case #WM_CLOSE             : Debug "win closed" 
	Case #WM_GETMINMAXINFO     : Debug "win sized" 
	Case #WM_WINDOWPOSCHANGING : Debug "win pos changing" 
	Case #WM_WINDOWPOSCHANGED  : Debug "win pos changed" 
	 
	Case #WM_SETCURSOR         : Debug "set cursor" 
	Case #WM_NCHITTEST         : Debug "NC hit test" 
	Case #WM_CTLCOLORBTN       : Debug "ctl color button" 
	Case #WM_COMMAND           : Debug "wm command" 
	Case #WM_CONTEXTMENU       : Debug "context menu" 
	Case #WM_PARENTNOTIFY      : Debug "parent notify" 
	Case #WM_ACTIVATE          : Debug "activate" 
	Case #WM_NCACTIVATE        : Debug "NC activate" 
	Case #WM_ACTIVATEAPP       : Debug "activate app" 
	Case #WM_KILLFOCUS         : Debug "kill focus" 
	Case #WM_GETICON           : Debug "get icon" 
	Case #WM_SYSCOMMAND        : Debug "sys command" 
	Case #WM_DESTROY           : Debug "destroy" 
	Case #WM_NCDESTROY         : Debug "NC destroy" 
	 
	Default : Debug ">> &H"+Hex(Message) 
	EndSelect  

Re: #WM_SIZING (notification)

Publié : mar. 04/sept./2012 18:33
par Backup
ta balise de fin de code n'est pas dans le bon sens

c'est "[/Code]" pas "[\Code]" ;)

Re: #WM_SIZING (notification)

Publié : mer. 05/sept./2012 9:07
par Mesa
Sans passer par les api, j'avais fait ce code mais apparemment, il y a un bug pour le redimensionnement vertical.

Est-ce un bug de resizewindow() ?

Code : Tout sélectionner

;{- Enumerations / DataSections
;{ Windows
Enumeration
  #Window_0
EndEnumeration
;}
Define.l Event, EventWindow, EventGadget, EventType, EventMenu
;}
Procedure OpenWindow_Window_0()
  If OpenWindow(#Window_0, 450, 200, 439, 400, "", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_MaximizeGadget)
  EndIf
EndProcedure

Procedure RedimWindow(NumeroFenetre.l)
  
  ;If GetWindowState(NumeroFenetre)=#PB_Window_Normal
  
  ;Dimension de la fenêtre
  Largeur = WindowWidth(NumeroFenetre) 
  Hauteur = WindowHeight(NumeroFenetre)
  
 
  ;     ;Où est la souris ? ===> ça ne marche pas !?
  ;     x = WindowMouseX(NumeroFenetre)
  ;     y = WindowMouseY(NumeroFenetre) 
  ;     Debug x
  ;     Debug y
  
  
  ResizeWindow(NumeroFenetre,#PB_Ignore,#PB_Ignore,Largeur,Largeur)
  ;ResizeWindow(NumeroFenetre,#PB_Ignore,#PB_Ignore,Hauteur,Hauteur)
  SetWindowTitle(NumeroFenetre, Str(Largeur)+"x"+Str(Hauteur)) 
  
EndProcedure


OpenWindow_Window_0()

;{- Event loop
Repeat
  Event = WaitWindowEvent()
  NumeroFenetre = EventWindow() 
  
  Select Event
      ; ///////////////////
    Case #PB_Event_Gadget
      EventGadget = EventGadget()
      EventType = EventType()
      ; ////////////////////////
    Case  #PB_Event_SizeWindow 
      NumeroFenetre = EventWindow()
      RedimWindow(NumeroFenetre)
      
    Case #PB_Event_CloseWindow
      EventWindow = EventWindow()
      If EventWindow = #Window_0
        CloseWindow(#Window_0)
        Break
      EndIf
  EndSelect
ForEver
;
;}
Mesa.

Re: #WM_SIZING (notification)

Publié : mer. 05/sept./2012 10:19
par Backup
Mesa a écrit :Est-ce un bug de resizewindow() ?.

meme pas testé le code, mais lorsque je vois :
ResizeWindow(NumeroFenetre,#PB_Ignore,#PB_Ignore,Largeur,Largeur)
:)

ça serai pas
ResizeWindow(NumeroFenetre,#PB_Ignore,#PB_Ignore,Largeur,Hauteur)
par hasard ?

Re: #WM_SIZING (notification)

Publié : mer. 05/sept./2012 10:22
par Ar-S
C'est normal Dobro c'est justement le but du prog, redimensionner la fenêtre en gardant une largeur et une hauteur identique. :P

Re: #WM_SIZING (notification)

Publié : mer. 05/sept./2012 10:34
par Mesa
Tout est dit Dobro... :twisted: :wink:

Ça ressemble à un bug de resizewindow(), non ?

Mesa.

Re: #WM_SIZING (notification)

Publié : mer. 05/sept./2012 10:58
par falsam
Un code de netmaestro sur le forum anglais.

http://www.purebasic.fr/english/viewtop ... 18#p361218

Code : Tout sélectionner

#Space  = 10
#Status = 40
#MinX   = 640
#MinY   = 480
#MinCardSize = 60

Global mincx = #minx+2*GetSystemMetrics_(#SM_CXSIZEFRAME)
Global mincy = #miny+2*GetSystemMetrics_(#SM_CYSIZEFRAME)+GetSystemMetrics_(#SM_CYCAPTION)
Global cardsize = #MinCardSize

Procedure Draw()
  w=WindowWidth(0):h=WindowHeight(0)
  ResizeGadget(0,0,0,w,h)
  StartDrawing(CanvasOutput(0))
  Box(0,0,w,h,#Yellow)
  drawy = #space
  For j=1 To 6
    drawx = #space
    For i=1 To 9
      Box(drawx, drawy,cardsize,cardsize,#Black)
      drawx+cardsize+#space
    Next
    drawy+cardsize+#space
  Next
  Box(#space,drawy,#space*8+9*cardsize,#status,#Red)
  DrawText(#space+5, drawy+12, "Cardsize = "+Str(cardsize), #Black, #Red)
  StopDrawing()
EndProcedure

Procedure WinProc(hwnd, msg, wparam, lparam)
  result = #PB_ProcessPureBasicEvents
  Static old.RECT
  Select msg
      
    Case #WM_NCLBUTTONDBLCLK
      cardsize = #MinCardSize
      ResizeWindow(0,#PB_Ignore,#PB_Ignore,#minx,#miny)
      Draw()
      
    Case #WM_ENTERSIZEMOVE
      GetWindowRect_(hwnd, @old.RECT)
      result = 0
      
    Case #WM_SIZING 
      
      *new.RECT = lparam
      
      Select wparam
        Case #WMSZ_BOTTOMRIGHT,#WMSZ_RIGHT 
          delta = *new\right-old\right
          delta - delta%9
          *new\right=old\right+delta
          cx = *new\right-*new\left
          cardsize = (cx-2*GetSystemMetrics_(#SM_CXSIZEFRAME)-10*#space)/9
          cy = 8*#space+6*cardsize+#status+2*GetSystemMetrics_(#SM_CYSIZEFRAME)+GetSystemMetrics_(#SM_CYCAPTION)
          *new\bottom = old\top+cy
          If cx < mincx Or cy < mincy
            *new\right = old\left+mincx : *new\bottom = old\top+mincy : cardsize = #MinCardSize
          EndIf
          
        Case #WMSZ_BOTTOMLEFT,#WMSZ_LEFT 
          delta = old\left-*new\left
          delta - delta%9
          *new\left=old\left-delta
          cx = *new\right-*new\left
          cardsize = (cx-2*GetSystemMetrics_(#SM_CXSIZEFRAME)-10*#space)/9
          cy = 8*#space+6*cardsize+#status+2*GetSystemMetrics_(#SM_CYSIZEFRAME)+GetSystemMetrics_(#SM_CYCAPTION)
          *new\bottom = old\top+cy
          If cx < mincx Or cy < mincy
            *new\left = old\right-mincx : *new\bottom = old\top+mincy : cardsize = #MinCardSize
          EndIf
         
        Case #WMSZ_TOP, #WMSZ_TOPLEFT
          delta = old\top-*new\top
          delta - delta%6
          *new\top=old\top-delta
          cy = old\bottom-*new\top
          cardsize = (cy-2*GetSystemMetrics_(#SM_CXSIZEFRAME)-8*#space-#status-GetSystemMetrics_(#SM_CYCAPTION))/6
          cx = 10*#space+9*cardsize+2*GetSystemMetrics_(#SM_CYSIZEFRAME)
          *new\left = old\right-cx
          If cx < mincx Or cy < mincy
            *new\left = old\right-mincx : *new\top = old\bottom-mincy : cardsize = #MinCardSize
          EndIf
          
        Case #WMSZ_TOPRIGHT
          delta = old\top-*new\top
          delta - delta%6
          *new\top=old\top-delta
          cy = old\bottom-*new\top
          cardsize = (cy-2*GetSystemMetrics_(#SM_CXSIZEFRAME)-8*#space-#status-GetSystemMetrics_(#SM_CYCAPTION))/6
          cx = 10*#space+9*cardsize+2*GetSystemMetrics_(#SM_CYSIZEFRAME)
          *new\right = old\left+cx
          If cx < mincx Or cy < mincy
            *new\right = old\left+mincx : *new\top = old\bottom-mincy : cardsize = #MinCardSize
          EndIf
          
        Case #WMSZ_BOTTOM
          delta = old\bottom-*new\bottom
          delta - delta%6
          *new\bottom=old\bottom-delta
          cy = *new\bottom-old\top
          cardsize = (cy-2*GetSystemMetrics_(#SM_CXSIZEFRAME)-8*#space-#status-GetSystemMetrics_(#SM_CYCAPTION))/6
          cx = 10*#space+9*cardsize+2*GetSystemMetrics_(#SM_CYSIZEFRAME)
          *new\left = old\right-cx
          If cx < mincx Or cy < mincy
            *new\left = old\right-mincx : *new\bottom = old\top+mincy : cardsize = #MinCardSize
          EndIf
          
      EndSelect
      
      Draw()
      result = #True

  EndSelect
  
  ProcedureReturn result
  
EndProcedure

OpenWindow(0,0,0,640,480,"Memory Game", #PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget)
SetWindowCallback(@WinProc())
CanvasGadget(0,0,0,640,480)
Draw()

Repeat:Until WaitWindowEvent() = #PB_Event_CloseWindow

Re: #WM_SIZING (notification)

Publié : mer. 05/sept./2012 14:40
par Mesa
Une adaptation du code trouvé par Falsam et sans api :

La Procedure redimFenetre() permet de prendre en compte des dimensions mini et maxi. L'auteur utilise un calcul perso pour prendre en compte la hauteur de la barre de titre, des bordures, ...

La Procedure SimpleRedimFenetre() n'a pas de limitation ni de calcul "bizarre".

Code : Tout sélectionner

Global WinID
Global W_ini,H_ini
;Dimension du bureau
Bureau = ExamineDesktops()
Global MaxX=DesktopWidth(0)
Global MaxY=DesktopHeight(0)

Global CardSize,CardTotal
Global sensible=#True

#Space=10
#Status=50

;Permet de définir une taille min d'afichage de la fenêtre, voir Windowbounds()
#MinX=0;640
#MinY=0;480

;Dimension initiale de la fenêtre
W_ini=640
H_ini=480

Enumeration
  #Win
  #Desk
EndEnumeration


; dessine et redimensionne un canvas sur toute la surface de la fenêtre
Procedure DessineCanvas()
  Protected i,j,n,x,y
  
  CardSize=(W_ini-(#Space*10))/9
  CardTotal=CardSize+#Space
  
  StartDrawing(CanvasOutput(#Desk))
  Box(0,0,W_ini,H_ini,#White)
  
  StopDrawing()
  
EndProcedure

Procedure redimFenetre()
  If sensible
    x=WindowWidth(#Win)
    y=WindowHeight(#Win)
    
    ;Prise en compte des windowbounds (facultatif)
    If x<>W_ini
      If x<#MinX
        x=#MinX
      ElseIf x>MaxX
        x=MaxX
      EndIf
      W_ini=x
      y=(x-10*#Space)/9       ;Prise en compte de la barre de titre ?
      y=y*6+7*#Space+#Status  ;Prise en compte de la barre d'état ?
      If y<>H_ini
        H_ini=y
        sensible=#False
        ResizeWindow(#Win,#PB_Ignore,#PB_Ignore,#PB_Ignore,H_ini)
      EndIf
    ElseIf y<>H_ini
      If y<#MinY
        y=#MinY
      ElseIf y>MaxY
        y=MaxY
      EndIf
      H_ini=y
      x=(y-7*#Space-#Status)/6  ;Prise en compte de la barre d'état ?
      x=x*9+10*#Space           ;Prise en compte de la barre de titre ?
      If x<>W_ini
        W_ini=x
        sensible=#False
        ResizeWindow(#Win,#PB_Ignore,#PB_Ignore,W_ini,#PB_Ignore)
      EndIf
    EndIf
    If sensible=#False
      ResizeGadget(#Desk,#PB_Ignore,#PB_Ignore,W_ini,H_ini)
      DessineCanvas()
    EndIf
  Else
    sensible=#True
  EndIf
  SetWindowTitle(#Win,Str(W_ini)+"x"+Str(H_ini))
EndProcedure
Procedure SimpleRedimFenetre()
  If sensible
    W_fin=WindowWidth(#Win)
    H_fin=WindowHeight(#Win)
    
    If W_fin<>W_ini
      W_ini=W_fin
      H_fin=W_fin
      If H_fin<>H_ini
        H_ini=H_fin
        sensible=#False
        ResizeWindow(#Win,#PB_Ignore,#PB_Ignore,#PB_Ignore,H_ini)
      EndIf
    ElseIf y<>H_ini
      H_ini=H_fin
      W_fin=H_fin
      If W_fin<>W_ini
        W_ini=W_fin
        sensible=#False
        ResizeWindow(#Win,#PB_Ignore,#PB_Ignore,W_ini,#PB_Ignore)
      EndIf
    EndIf
    If sensible=#False
      ResizeGadget(#Desk,#PB_Ignore,#PB_Ignore,W_ini,H_ini)
      DessineCanvas()
    EndIf
  Else
    sensible=#True
  EndIf
  SetWindowTitle(#Win,Str(W_ini)+"x"+Str(H_ini))
EndProcedure

WinID=OpenWindow(#Win,0,0,W_ini,H_ini,"Memory",#PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_ScreenCentered)
;WindowBounds(#Win,#MinX,#MinY,#MinX<<1,#MinY<<1) ; Définit les nouvelles dimensions min de la fenêtre
CanvasGadget(#Desk,0,0,W_ini,H_ini)

DessineCanvas()


Repeat
  Select WaitWindowEvent()
      
    Case #PB_Event_SizeWindow
      ;redimFenetre()  ; <==== A Essayer, dans ce cas commenter la ligne du dessous : SimpleRedimFenetre()
      SimpleRedimFenetre()
      
    Case #PB_Event_CloseWindow
      EventWindow = EventWindow()
      If EventWindow = #Win
        CloseWindow(#Win)
        Break
      EndIf
      
  EndSelect
  
ForEver


Mesa.

Re: #WM_SIZING (notification)

Publié : mer. 05/sept./2012 14:52
par falsam
Par contre sous Windows7 il y a un effet de flirckering assez important.

Re: #WM_SIZING (notification)

Publié : mer. 05/sept./2012 15:06
par Mesa
C'est intéressant, sous xp ça va bien.

Faudrait faire des essais en désactivant les lignes DessineCanvas() pour voir si c'est le canvas et en mettant une temporisation dans WaitWindowEvent(), par exemple WaitWindowEvent(20).

Ça améliore le binz ?

Mesa.

Re: #WM_SIZING (notification)

Publié : mer. 05/sept./2012 15:53
par falsam
Mesa a écrit :Ça améliore le binz ?
Non.

Re: #WM_SIZING (notification)

Publié : ven. 07/sept./2012 13:04
par pat
Merci à vous tous pour vos exemples et vos aides respectives.
Il y a de quoi faire avec tous ces exemples.
Je vais voir si je peux améliorer, de mon côté, le code et si cela fonctionne, j'essaierais de vous donner mon code à mon tour.

Re: #WM_SIZING (notification)

Publié : sam. 08/sept./2012 15:06
par pat
J'ai réussi à faire quelque chose qui marche. Vous en jugerez.
Comme promis, voici mon code :

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
    If old\bottom+mt<lgf
      mt=lgf-old\bottom
    Endif
   *st\bottom=old\bottom+mt
  Elseif  wParam=#WMSZ_TOP or wParam=#WMSZ_BOTTOM
   pc=(ecy*100)/haut
   mt=(long*pc)/100
  If old\right+mt<htf
   mt=htf-old\right
  Endif
  *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<lgf
  mt=lgf-old\top
 Endif
 *st\top=old\top-mt
 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)
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
WindowBounds(0,lgf,htf,#PB_Ignore,,#PB_Ignore)
SmartWindowRefresh(0,1)
SetWindowCallback(@WindowProc())
Repeat
Event=WaitWindowEvent()
Until Event=#PB_Event_CloseWindow
Endif
Et ce coup-ci j'ai enfin réussi à mettre les balises (il était temps).

Re: #WM_SIZING (notification)

Publié : sam. 08/sept./2012 15:52
par Backup
pat a écrit : Et ce coup-ci j'ai enfin réussi à mettre les balises (il était temps).
il suffit au moment de la redaction de message, de sélectionner le code et d'appuyer sur le bouton

Code : Tout sélectionner

  ;)

je parle de ces boutons :

[img]http://michel.dobro.free.fr/Forum_pb/editer.png[/img]