Seite 1 von 1

Window FullSize öffnen und bleiben.

Verfasst: 27.02.2005 16:26
von Pelagio
:praise:
Hallo Alleda


Wie kann ich ein Window im maximize Modus öffnen und den minimize/maximize Button soweit deaktivieren,
das man das Window nicht mehr verkleiner kann. Das Window sollte auch nicht mehr zu bewegen sein.
Dies Problem habe ich, wie im unteren Code zu sehen, zwar gelöst aber nicht zu meiner vollsten Zufriedenheit.
Vieleicht gibt es ja die Möglichkeit den minimize/maximize Button zu speeren!

Hat jemand eine Lösung?

Code: Alles auswählen

Enumeration ;Fenster
   #Window_1
   #FullScroll
   #FullImage
   #FullJPG
   #RowHeight = 25
EndEnumeration
UseJPEGImageDecoder()

Procedure Window_FullSize(Value.l)
   SystemParametersInfo_(#SPI_GETWORKAREA, 0, rect.RECT, 0) 
   MoveWindow_(WindowID(Value), 0, 0, rect\right, rect\bottom, 1) 
EndProcedure

Procedure WindowImage_Open(Value.s)
   Protected EventID.l, MaxID.b
   
   If OpenWindow(#Window_1, 0, 0, 0, 0, #PB_Window_MaximizeGadget, "Image: " + Value)
      Window_FullSize(#Window_1)
      ShowWindow_(WindowID(#Window_1), #SW_SHOWMAXIMIZED)
      If LoadImage(#FullJPG, Value)
         If CreateGadgetList(WindowID(#Window_1))
            ScrollAreaGadget(#FullScroll, 0, 0, WindowWidth(), WindowHeight(), ImageWidth(), ImageHeight(), 10, #PB_ScrollArea_Single) 
               ImageGadget(#FullImage, 0, 0, WindowWidth()-#RowHeight, WindowHeight()-#RowHeight, #FullJPG)
            CloseGadgetList()
         EndIf   
         SetGadgetState(#FullImage, UseImage(#FullJPG))
         Repeat
            EventID.l = WaitWindowEvent()
            Select EventID
               Case #PB_EventCloseWindow
                  EventID = #True
               Case #PB_Event_SizeWindow
                  If MaxID
                     ShowWindow_(WindowID(#Window_1), #SW_SHOWMAXIMIZED)
                     MaxID = #False
                     WindowEvent()
                  EndIf
                  WindowEvent()
               Default
                  MaxID = #True
            EndSelect
         Until (EventID = #True)
         CloseWindow(#Window_1)
      EndIf
   EndIf
EndProcedure

WindowImage_Open(OpenFileRequester("Bild Öffnen", "", "Bild (*.jpg)|*.jpg", 0)) 

End

Verfasst: 28.02.2005 18:55
von celli
grüsst dich

am einafchsten ist es diese zeile zu ändern:

Code: Alles auswählen

If OpenWindow(#Window_1, 0, 0, 0, 0, #PB_Window_MaximizeGadget, "Image: " + Value) 
in ->

Code: Alles auswählen

If OpenWindow(#Window_1, 0, 0, 0, 0, #WS_POPUPWINDOW, "Image: " + Value) 
und dann einen button oben-links für das schliessen auf gewohnter art zu machen..
grüsse..

Verfasst: 28.02.2005 20:37
von nco2k
@celli
ich glaub nicht das er das gesucht hat.

@Pelagio
irgendwo hab ich das schonmal gesehen was du suchst, aber ich finds leider nicht mehr. :( ich glaub das war sogar ein beispielcode von danilo. schau einfach mal auf purearea.net und im pure-board archiv.

c ya,
nco2k

Verfasst: 01.03.2005 15:33
von Pelagio
:allright:
@nco2k

Du hast es richtig erkannt, das Problem welches ich habe ist etwas problematischer und ich danke dir für deinen Tipp im Archiv zu suchen.
Ich habe zwar etwas gefunden aber leider war dies noch nicht die Lösung des gesamten Problems.
Ich will das Fenster so maximieren das ich es auch nicht mehr bewegen kann. wenn ich mit den Lösungen aus dem Archiv arbeite so wird zwar das MaximizeGadget und MinimizeGadget gelöscht aber ich habe dann wieder das Problem das ich das Fenster, im Ganzen, verschieben kann. Ich brauch also eine Lösung in der ich das MaximizeGadget und MinimizeGadget sehe aber nicht betätigen kann.

Verfasst: 07.03.2005 09:42
von nco2k
hab was gefunden:

http://forums.purebasic.com/german/viewtopic.php?t=272

hoffentlich hilfts. :wink:

c ya,
nco2k

Verfasst: 07.03.2005 18:18
von Pelagio
:allright:
@nco2k:

Danke, aber dieses Beispiel hatte ich auch schon gesehen und dadurch das festgestellt was vorab schon einmal versucht habe zu erklären.

Verfasst: 08.03.2005 16:00
von Kaeru Gaman
brauchst du denn unbedingt die kopfleiste?

wenn du einen eigenen X-Button auf den hintergrund setzt,
und das fenster ohne titelleiste anzeigst, sollte es auch nicht verschiebbar sein.