Page 1 sur 1
Idée pour une super fenêtre modale mais pas assez de co...
Publié : ven. 16/nov./2007 22:08
par Nombre
J'ai une idée pour une super fenêtre modale mais pas assez de connaisances...
Il faudrai ce genre de shéma
Code : Tout sélectionner
Code des gadgets
Code de fenetre 2
Code de feneter 3
Code de la fenêtre principale : dans ce code il ya des boutons "Case #Win2" et "Case #Win 3"...
Sauf que vu que l'on a déja spécifié le code AVANT eh bien on est plus obligé de le réécrire après case....
Chépa si tout le monde a suivi ...
Si vous avez des idées,proposez

Publié : ven. 16/nov./2007 22:27
par Chris
Pas trop compris ton truc, mais qu'est-ce qui fait que ta fenêtre serait plus modale qu'une fenêtre modale "normale".
Une fenêtre est modale ou pas.
Soit elle est modale et donc, prend le contrôle de l'appli (ou du système) tant qu'elle est ouverte, et tu ne peux rien faire d'autre que de la fermer pour reprendre la main, (cas des boites de dialogue, par exemple), soit elle ne l'est pas, et tu peux travailler sur la fenêtre qui se trouve derrière, la réduire dans la barre de taches, etc, etc...
Publié : mer. 21/nov./2007 8:56
par brossden
Une fenetre modale sans trop de problème je pense !
Code : Tout sélectionner
Enumeration
#Win0 : #WinM : #BP0 : #Image0
EndEnumeration
ExamineDesktops()
Procedure Open_Window_0()
OpenWindow (#Win0, 0, 0, 200, 80, "Fenetre Modale" , #PB_Window_SystemMenu|#PB_Window_ScreenCentered )
CreateGadgetList(WindowID(#Win0))
ButtonGadget(#BP0, 30, 20, 140, 30, "Fermer cette fenêtre")
EndProcedure
Procedure Modal(Win, Options)
HideWindow(Win,1)
Static WinA, Image
If Options = 1
#CAPTUREBLT = $40000000
Image = CreateImage ( #PB_Any, DesktopWidth (0), DesktopHeight (0))
dc_bur = GetDC_ (0)
DC_im = StartDrawing ( ImageOutput ( Image ))
BitBlt_ (DC_im,0,0 , DesktopWidth (0), DesktopHeight (0), dc_bur , 0,0 , #SRCPAINT|#CAPTUREBLT )
StopDrawing ()
ReleaseDC_ (0, dc_bur)
WinA = OpenWindow(#PB_Any,0, 0, DesktopWidth(0),DesktopHeight(0),"", #PB_Window_BorderLess|#PB_Window_Invisible )
Fond.LOGBRUSH\lbStyle=3 : Fond\lbColor=0 : Fond\lbHatch=ImageID(Image)
SetClassLong_(WindowID(WinA),-10,CreateBrushIndirect_(Fond))
HideWindow(WinA,0)
DisableWindow(WinA,1)
HideWindow(Win,0)
StickyWindow(Win,1)
ElseIf Options = 0
HideWindow(WinA,1)
StickyWindow(Win,0)
CloseWindow(WinA)
CloseWindow(Win)
EndIf
EndProcedure
Open_Window_0()
Modal(#Win0,1 )
Repeat
Event = WaitWindowEvent()
GadgetID = EventGadget()
If Event = #PB_Event_Gadget
If GadgetID = #BP0
Modal(#Win0,0 )
EndIf
EndIf
Until Event = #PB_Event_CloseWindow
End
Publié : mer. 21/nov./2007 17:18
par Nombre
Encore un code en brosse a dents( ah ok le jeu de mots avec ton pseudo j'ai même pas fait exprès

)