Window FullSize öffnen und bleiben.

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem
Wohnort: Bremen

Window FullSize öffnen und bleiben.

Beitrag 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
celli
Beiträge: 24
Registriert: 11.01.2005 18:45

Beitrag 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..
Benutzeravatar
nco2k
Beiträge: 892
Registriert: 08.09.2004 23:13

Beitrag 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
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem
Wohnort: Bremen

Beitrag 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.
Benutzeravatar
nco2k
Beiträge: 892
Registriert: 08.09.2004 23:13

Beitrag von nco2k »

hab was gefunden:

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

hoffentlich hilfts. :wink:

c ya,
nco2k
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem
Wohnort: Bremen

Beitrag 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.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten