OpenWindowScreen() et MDIGadget()

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

OpenWindowScreen() et MDIGadget()

Message par comtois »

J'ai pris l'exemple de l'aide ,et j'ai ajouté un OpenWindowedScreen() pour voir ce que ça donnait , et je ne sais pas comment forcer les fenêtres filles à s'afficher par dessus l"écran , est-ce possible ?

Code : Tout sélectionner

InitSprite()
If OpenWindow(0,0,0,400,300,#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget|#PB_Window_MaximizeGadget,"MDIGadget") 
    OpenWindowedScreen(WindowID(),0,30,200,200,0,0,0)
    If CreateGadgetList(WindowID(0)) And CreateMenu(0, WindowID(0)) 
      MenuTitle("Menu index 0") 
      MenuTitle("MDI windows menu") 
        MenuItem(0, "self created item") 
        MenuItem(1, "self created item") 
        
      MDIGadget(0, 0, 0, 0, 0, 1, 2, #PB_MDI_AutoSize) 
        AddGadgetItem(0, -1, "child window") 
          ; add gadgets here... 
      CloseGadgetList() 
    EndIf 
    
    Repeat 
    ClearScreen(200,155,255)
    FlipBuffers()
    Until WaitWindowEvent()=#PB_Event_CloseWindow 
  EndIf 
fweil
Messages : 505
Inscription : dim. 16/mai/2004 17:50
Localisation : Bayonne (64)
Contact :

Message par fweil »

Là je crois que c'est sans issue si tu veux passer les gadgets par dessus la partie screen, parce que dans ta boucle tu écrases en permanence avec le ClearScreen ...

Le seul moyen serait d'ouvrir deux fenêtres séparées et d'utiliser un SetForegroundWindow_() de celle contenant les gadgets.
Mon avatar reproduit l'image de 4x1.8m présentée au 'Salon international du meuble de Paris' en janvier 2004, dans l'exposition 'Shades' réunisant 22 créateurs autour de Matt Sindall. L'original est un stratifié en 150 dpi.
Aranoth
Messages : 293
Inscription : sam. 24/janv./2004 12:00
Localisation : Toulouse (31)
Contact :

Message par Aranoth »

j'avais déjà essayé de mettre des gadgets au dessus d'un screen, Fred m'avait dit que ct impossible, mais que peut etre dans une prochaine version...
Débutant en programmation, notament en C++ ?
Vous souhaitez apprendre ?
fweil
Messages : 505
Inscription : dim. 16/mai/2004 17:50
Localisation : Bayonne (64)
Contact :

Message par fweil »

J'ajoute on peut probablement créer deux fenêtres séparées qui sont rattachées en tant que filles d'une fenêtre globale, l'une contenant le mode screen et l'autre les gadgets.

Je pense que comme ça le tour est joué.
Mon avatar reproduit l'image de 4x1.8m présentée au 'Salon international du meuble de Paris' en janvier 2004, dans l'exposition 'Shades' réunisant 22 créateurs autour de Matt Sindall. L'original est un stratifié en 150 dpi.
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

pour l'instant je fais plusieurs fenêtres ( sans MDI) , une fenêtre principale avec le screen et 3 autres fenêtres qui s'affichent par dessus , bon c'est pas du MDI , mais tant pis ,ça va rester comme ça , parce que là je ne vois pas comment faire ce que tu dis :?

j'irai voir sur code archiv s'il y a des exemples pour faire ce genre de truc
deux fenêtres séparées qui sont rattachées en tant que filles d'une fenêtre globale, l'une contenant le mode screen et l'autre les gadgets.
Je ne vois pas ce que ça fait concrètement par rapport au MDI?




le but c'est d'améliorer ce truc là ( l'éditeur map 3D ) :

http://perso.wanadoo.fr/comtois/sources ... DBETA3.zip

A moins qu'il y ait d'autres solutions , l'objectif étant d'avoir le screen qui occupe tout l'écran ,c'est plus confortable, et des fenêtres outils qui s'affichent par dessus , et qui y restent .

Merci pour vos réponses.
fweil
Messages : 505
Inscription : dim. 16/mai/2004 17:50
Localisation : Bayonne (64)
Contact :

Message par fweil »

Ben je t'envoies un essai comme ça ... sans trop chercher + loin, mais voila ce que je voulais dire. Si les fenêtres sont expédiées aux bords, tu peux agrandir la fenêtre globale pour tout voir.

Code : Tout sélectionner

  InitSprite() 
  If OpenWindow(0,0,0,400,300,#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget|#PB_Window_MaximizeGadget,"Global") 
      If OpenWindow(1,0, 0, 400, 300, #PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget|#PB_Window_MaximizeGadget,"Screen") 
          OpenWindowedScreen(WindowID(1),0,30,200,200,0,0,0) 
      EndIf
      If OpenWindow(2,0, 0, 400, 300, #PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget|#PB_Window_MaximizeGadget,"Gadgets") 
          If CreateGadgetList(WindowID(2)) And CreateMenu(0, WindowID(2)) 
              MenuTitle("Menu index 0") 
              MenuTitle("MDI windows menu") 
              MenuItem(0, "self created item") 
              MenuItem(1, "self created item") 
              MDIGadget(0, 0, 0, 0, 0, 1, 2, #PB_MDI_AutoSize) 
              AddGadgetItem(0, -1, "child window") 
              ; add gadgets here... 
              CloseGadgetList() 
          EndIf 
      EndIf
      SetParent_(WindowID(2), WindowID(0))
      SetParent_(WindowID(1), WindowID(0))
      Repeat 
        ClearScreen(200,155,255) 
        FlipBuffers() 
        SetForegroundWindow_(WindowID(2))
      Until WaitWindowEvent()=#PB_Event_CloseWindow 
  EndIf 
End
Mon avatar reproduit l'image de 4x1.8m présentée au 'Salon international du meuble de Paris' en janvier 2004, dans l'exposition 'Shades' réunisant 22 créateurs autour de Matt Sindall. L'original est un stratifié en 150 dpi.
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Ok super , je vais regarder ce que je peux faire avec ça :)

Merci
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

ça fonctionne comme je voulais .

entre cette solution , et la solution avec le panelgadget j'ai l'embarras du choix maintenant :)

Code : Tout sélectionner

InitSprite() 
If OpenWindow(0,0,0,400,300,#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget|#PB_Window_MaximizeGadget,"MDIGadget") 
  ;OpenWindowedScreen(WindowID(),0,30,200,200,0,0,0) 
  If CreateGadgetList(WindowID(0)) And CreateMenu(0, WindowID(0)) 
    MenuTitle("Menu index 0") 
    MenuTitle("MDI windows menu") 
    MenuItem(0, "self created item") 
    MenuItem(1, "self created item") 
    
    MDIGadget(0, 0, 0, 0, 0, 1, 2, #PB_MDI_AutoSize) 
    AddGadgetItem(0, -1, "Matrix 3D") 
    hCont = ContainerGadget(1,10,10,200,200,#PB_Container_Double) 
    If OpenWindowedScreen( hCont, 0, 0, 200, 200, 0, 0, 0 ) = 0 
      MessageRequester( "Erreur" , "Impossible d'ouvrir l'écran " , 0 ) 
      End 
    EndIf
    ; add gadgets here... 
    AddGadgetItem(0, -1, "Textures") 
    CloseGadgetList() 
  EndIf 
  
  Repeat 
    ClearScreen(200,155,255) 
    FlipBuffers() 
  Until WaitWindowEvent()=#PB_Event_CloseWindow 
EndIf 
avec le sprite de Chris

Code : Tout sélectionner

InitSprite() 
If OpenWindow(0,0,0,400,300,#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget|#PB_Window_MaximizeGadget,"MDIGadget") 
  ;OpenWindowedScreen(WindowID(),0,30,200,200,0,0,0) 
  If CreateGadgetList(WindowID(0)) And CreateMenu(0, WindowID(0)) 
    MenuTitle("Menu index 0") 
    MenuTitle("MDI windows menu") 
    MenuItem(0, "self created item") 
    MenuItem(1, "self created item") 
    
    MDIGadget(0, 0, 0, 0, 0, 1, 2, #PB_MDI_AutoSize) 
    AddGadgetItem(0, -1, "Matrix 3D") 
    hCont = ContainerGadget(1,10,10,200,200,#PB_Container_Double) 
    If OpenWindowedScreen( hCont, 0, 0, 200, 200, 0, 0, 0 ) = 0 
      MessageRequester( "Erreur" , "Impossible d'ouvrir l'écran " , 0 ) 
      End 
    EndIf
    ; add gadgets here... 
    AddGadgetItem(0, -1, "Textures") 
    CloseGadgetList() 
  EndIf 
  
  If CreateSprite(1000,24,24) 
    StartDrawing(SpriteOutput(1000)) 
    Box(0,0,24,24,RGB($0,$0,$FF)) 
    StopDrawing() 
  EndIf 
  
  Dep = 8 
 
  Repeat 
    
    ClearScreen(0,155,255) 
        DisplaySprite(1000, x, 100) 
    
    x + Dep 
    If x >=200 Or x <=0 : Dep = -Dep : EndIf 
    FlipBuffers() 
  Until WindowEvent()=#PB_Event_CloseWindow 
EndIf 
Répondre