Page 1 sur 2

Problème: faire une sous fenetre en plein écran

Publié : dim. 27/mai/2007 21:02
par #PB_IS_COOL
Bonjour !:)
J'aimerais vous poser une question:
Est-il possible de créer une sous fenetre en mode plein-ecran?
Voila, si vous savez, aidez moi sil vous plaiiiittt !!!:cry:
@+:cry:

Publié : dim. 27/mai/2007 22:37
par minirop
tu ouvre une fenêtre en plein ecran en passant l'ID de ta fenêtre en dernier paramètre, non ?

Re: Problème: faire une sous fenetre en plein écran

Publié : dim. 27/mai/2007 23:23
par Backup
#PB_IS_COOL a écrit :Bonjour !:)
J'aimerais vous poser une question:
Est-il possible de créer une sous fenetre en mode plein-ecran?
Voila, si vous savez, aidez moi sil vous plaiiiittt !!!:cry:
@+:cry:
pour quoi faire ? 8O

tu peux éventuellement faire une fenêtre qui contient des gadgets et un écran...

Publié : lun. 28/mai/2007 9:50
par #PB_IS_COOL
Ben en fait c'est que lorsque on appui sur une touche, sa ouvre une fenetre sans réduire le plein écran...:?

Publié : lun. 28/mai/2007 11:26
par Backup
#PB_IS_COOL a écrit :Ben en fait c'est que lorsque on appui sur une touche, sa ouvre une fenetre sans réduire le plein écran...:?
c'est impossible avec le mode plein ecran !!
mais par contre tu peut ouvrir un Ecran dans une fenetre" Full"
et ensuite faire passer une 2em fenetre-gadget devant ta fenetre-ecran :D
et swapper de l'une a l'autre :D
(comme degas elite)

a noter qu'une fenetre-ecran (OpenWindowedScreen()) peut tres bien ne pas avoir de bordures :D ; on peut meme la faire ronde !! :lol:

Publié : sam. 07/juil./2007 1:55
par Ollivier
Finalement, par cette astuce, ça devient possible :lol:

Code : Tout sélectionner

Declare OpenScreen_()

  Win0 = OpenScreen_()

  Tmp = #PB_Window_SystemMenu     ; Autorise le menu système sur la barre de titre.
  Tmp | #PB_Window_MinimizeGadget ; Ajoute l'icône 'Réduire' sur la barre de titre. #PB_Window_SystemMenu est ajouté automatiquement.
  Tmp | #PB_Window_MaximizeGadget ; Ajoute l'icône 'Agrandir' sur la barre de titre. #PB_Window_SystemMenu est ajouté automatiquement.
  Tmp | #PB_Window_SizeGadget     ; Ajoute LES possibilités de redimensionnement à la fenêtre.
  Tmp | #PB_Window_TitleBar       ; Crée la fenêtre avec une barre de titre.
  Tmp | #PB_Window_WindowCentered ; Centre la fenêtre au milieu de la fenêtre mère ('FenetreMereID' doit être spécifié). LES paramètres x,y sont ignorés.

  Win1 = OpenWindow(#PB_Any, 0, 0, 400, 200, "Fenêtre d'essai", Tmp)

MessageRequester("", "Une fenêtre dans un screen intégral")


Procedure OpenScreen_()
  ExamineDesktops()
  x = DesktopWidth(0)
  y = DesktopHeight(0)
  Win = OpenWindow(#PB_Any, 0, 0, x, y, "", $81000000)
  InitSprite()
  OpenWindowedScreen(WindowID(Win), 0, 0, x, y, 0, 0, 0)
  ProcedureReturn Win
EndProcedure

Publié : sam. 07/juil./2007 7:30
par Backup
Ollivier a écrit :Finalement, par cette astuce, ça devient possible :lol:
en definitif tu fais ce que j'ai ecris plus haut ! :)
c'est a dire ouvrir un ecran dans une fenetre ! :)

Publié : sam. 07/juil./2007 7:37
par Ollivier
Tout à fait Dobro. D'ailleurs, vu le peu de temps que j'ai PB. Je suis curieux de tester toutes les théories possibles et inimaginables. C'est peut-être hors sujet mais j'ai essayé de mettre un menu PopUp dans cet exemple ci-dessus : ça coince!

Publié : sam. 07/juil./2007 10:50
par Backup
Ollivier a écrit :Tout à fait Dobro. D'ailleurs, vu le peu de temps que j'ai PB. Je suis curieux de tester toutes les théories possibles et inimaginables. C'est peut-être hors sujet mais j'ai essayé de mettre un menu PopUp dans cet exemple ci-dessus : ça coince!
si! ça marche bien :D


Declare OpenScreen_ ()

Win0 = OpenScreen_ ()

Tmp = #PB_Window_SystemMenu ; Autorise le menu système sur la barre de titre.
Tmp | #PB_Window_MinimizeGadget ; Ajoute l'icône 'Réduire' sur la barre de titre. #PB_Window_SystemMenu est ajouté automatiquement.
Tmp | #PB_Window_MaximizeGadget ; Ajoute l'icône 'Agrandir' sur la barre de titre. #PB_Window_SystemMenu est ajouté automatiquement.
Tmp | #PB_Window_SizeGadget ; Ajoute LES possibilités de redimensionnement à la fenêtre.
Tmp | #PB_Window_TitleBar ; Crée la fenêtre avec une barre de titre.
Tmp | #PB_Window_WindowCentered ; Centre la fenêtre au milieu de la fenêtre mère ('FenetreMereID' doit être spécifié). LES paramètres x,y sont ignorés.

Win1 = OpenWindow ( #PB_Any , 0, 0, 400, 200, "Fenêtre d'essai" , Tmp)
If CreatePopupMenu (0) ; La création du menu contextuel commence...
     MenuTitle ( "Projet" ) ; Vous pouvez utiliser toutes les commandes relatives au menu,
     MenuItem (1, "Ouvrir" ) ; comme si c'était un menu normal...
     MenuItem (2, "Enregistrer" )
     MenuItem (3, "Enregistrer sous" )
     MenuItem (4, "Quitter" )
     MenuBar ()
     OpenSubMenu ( "Fic&hiers récents" )
     MenuItem (5, "PureBasic.exe" )
     MenuItem (6, "Test.txt" )
     CloseSubMenu ()
     MenuTitle ( "Editer" )
     MenuTitle ( "Options" )
EndIf
Repeat
     Select WaitWindowEvent () ; Examine quel type d'évènement est survenu sur la fenêtre
         Case #WM_RBUTTONDOWN ; Le bouton droit de la souris a été clické =>
             DisplayPopupMenu (0, WindowID (Win1 )) ; On affiche le menu contextuel
         Case #PB_Event_Menu ; Un élément du menu a été sélectionné
             Select EventMenu () ; On recupère le numéro de cet élement...
                 Case 1 : Debug "Menu : Ouvrir"
                 Case 2 : Debug "Menu : Enregistrer"
                 Case 3 : Debug "Menu : Enregistrer sous"
                 Case 4 : Quitter = 1
                 Case 5 : Debug "Menu : PureBasic.exe"
                 Case 6 : Debug "Menu : Text.txt"
             EndSelect
         Case #PB_Event_CloseWindow
            Quitter = 1
     EndSelect
Until Quitter = 1




MessageRequester ( "" , "Une fenêtre dans un screen intégral" )


Procedure OpenScreen_ ()
     ExamineDesktops ()
    x = DesktopWidth (0)
    Y = DesktopHeight (0)
    Win = OpenWindow ( #PB_Any , 0, 0, x, Y, "" , $81000000)
     InitSprite ()
     OpenWindowedScreen ( WindowID (Win), 0, 0, x, Y, 0, 0, 0)
     ProcedureReturn Win
EndProcedure

Publié : sam. 07/juil./2007 13:53
par Ollivier
@Dobro

Tu me redonnes espoir :D
J'étais en train de me prendre le crâne à mélanger Menu, PopUpMenu et OpenWindowedScreen.
En effet, j'ai un bug étrange: le programme démarre mais je reste dans l'éditeur PB, jusqu'à ce que je stoppe le programme depuis le débogueur.


A priori, après un OpenWindow(), les 3 fonctions:
- CreateGadgetList()
- CreateMenu()
- CreatePopUpMenu()
ont un ordre bien précis de programmation. J'ai l'impression qu'on ne peut pas créer ses Gadgets avant d'avoir créé ses menus.

Tu peux essayer le code suivant. C'est ton code avec un rajout de TreeGadget(). Sur le mien, ça ne fonctionne pas. J'ai peut-être zappé un tuto là-dessus?

Code : Tout sélectionner

Declare OpenScreen_ () 

Win0 = OpenScreen_ () 

Tmp = #PB_Window_SystemMenu ; Autorise le menu système sur la barre de titre. 
Tmp | #PB_Window_MinimizeGadget ; Ajoute l'icône 'Réduire' sur la barre de titre. #PB_Window_SystemMenu est ajouté automatiquement. 
Tmp | #PB_Window_MaximizeGadget ; Ajoute l'icône 'Agrandir' sur la barre de titre. #PB_Window_SystemMenu est ajouté automatiquement. 
Tmp | #PB_Window_SizeGadget ; Ajoute LES possibilités de redimensionnement à la fenêtre. 
Tmp | #PB_Window_TitleBar ; Crée la fenêtre avec une barre de titre. 
Tmp | #PB_Window_WindowCentered ; Centre la fenêtre au milieu de la fenêtre mère ('FenetreMereID' doit être spécifié). LES paramètres x,y sont ignorés. 

Win1 = OpenWindow ( #PB_Any , 0, 0, 400, 200, "Fenêtre d'essai" , Tmp) 

;************************************************************
;************************************************************
; ICI RAJOUT DE CODE QUI VA BUGGER
;************************************************************

If CreateGadgetList(WindowID(Win1) )
  TreeGadget(29, 0, 0, 300, 300)
  AddGadgetItem(29, 0, "Root", 0, 0)
EndIf

;************************************************************
; FIN RAJOUT DE CODE
;************************************************************
;************************************************************



If CreatePopupMenu (0) ; La création du menu contextuel commence... 
     MenuTitle ( "Projet" ) ; Vous pouvez utiliser toutes les commandes relatives au menu, 
     MenuItem (1, "Ouvrir" ) ; comme si c'était un menu normal... 
     MenuItem (2, "Enregistrer" ) 
     MenuItem (3, "Enregistrer sous" ) 
     MenuItem (4, "Quitter" ) 
     MenuBar () 
     OpenSubMenu ( "Fic&hiers récents" ) 
     MenuItem (5, "PureBasic.exe" ) 
     MenuItem (6, "Test.txt" ) 
     CloseSubMenu () 
     MenuTitle ( "Editer" ) 
     MenuTitle ( "Options" ) 
EndIf

;************************************************************
;************************************************************
; PAR CONTRE SI LE RAJOUT EST ICI, CA FONCTIONNERA
;************************************************************





;************************************************************
; ICI RAJOUT
;************************************************************
;************************************************************


Repeat 
     Select WaitWindowEvent () ; Examine quel type d'évènement est survenu sur la fenêtre 
         Case #WM_RBUTTONDOWN ; Le bouton droit de la souris a été clické => 
             DisplayPopupMenu (0, WindowID (Win1 )) ; On affiche le menu contextuel 
         Case #PB_Event_Menu ; Un élément du menu a été sélectionné 
             Select EventMenu () ; On recupère le numéro de cet élement... 
                 Case 1 : Debug "Menu : Ouvrir" 
                 Case 2 : Debug "Menu : Enregistrer" 
                 Case 3 : Debug "Menu : Enregistrer sous" 
                 Case 4 : Quitter = 1 
                 Case 5 : Debug "Menu : PureBasic.exe" 
                 Case 6 : Debug "Menu : Text.txt" 
             EndSelect 
         Case #PB_Event_CloseWindow 
            Quitter = 1 
     EndSelect 
Until Quitter = 1 




MessageRequester ( "" , "Une fenêtre dans un screen intégral" ) 


Procedure OpenScreen_ () 
     ExamineDesktops () 
    x = DesktopWidth (0) 
    Y = DesktopHeight (0) 
    Win = OpenWindow ( #PB_Any , 0, 0, x, Y, "" , $81000000) 
     InitSprite () 
     OpenWindowedScreen ( WindowID (Win), 0, 0, x, Y, 0, 0, 0) 
     ProcedureReturn Win 
EndProcedure 


Publié : sam. 07/juil./2007 14:17
par Backup
Ollivier a écrit :C'est ton code avec un rajout de TreeGadget(). Sur le mien, ça ne fonctionne pas. J'ai peut-être zappé un tuto là-dessus?

chez moi ça marche niquel !! 8O

tu as la version 4.10 d'installé ou pas ?

moi je suis en 4.10 !! :) ça viendrai de la, que ça m'étonnerai guerre :lol:

Publié : sam. 07/juil./2007 14:21
par Ollivier
PB 4.02 8O

Publié : sam. 07/juil./2007 14:44
par Backup
Ollivier a écrit :PB 4.02 8O
pffffff ! et il s'etonne ... pffffff ! :lol: :lol: :lol:

Publié : sam. 07/juil./2007 14:54
par Ollivier
Ben écoute. Je débarque :o
Chui un pti jeune! (29/06)
Je suis peut-être accroché au train mais ça ne m'empêche pas de courir encore sur le quai :D

Bon ben je vais essayer la nouvelle version. J'espère qu'elle est en Fr. ça m'arrangerait. Et puis j'espère que mes 1er source sont compatibles sans trop de correction...

Publié : sam. 07/juil./2007 15:23
par Backup
Ollivier a écrit :Ben écoute. Je débarque :o
Chui un pti jeune! (29/06)
Je suis peut-être accroché au train mais ça ne m'empêche pas de courir encore sur le quai :D

Bon ben je vais essayer la nouvelle version. J'espère qu'elle est en Fr. ça m'arrangerait. Et puis j'espère que mes 1er source sont compatibles sans trop de correction...
il n'y a pas de problèmes majeur de compatibilité depuis la version 4.00 !

seul le passage de 3.92 (94) a 4.00 a pu poser des problèmes !! :)