SystemMenu trotz Borderless Window

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
Iggels
Beiträge: 53
Registriert: 17.02.2006 21:30

SystemMenu trotz Borderless Window

Beitrag von Iggels »

Borderless Windows haben ja normalerweise kein Systemmenu in der Taskleiste. Mithilfe diesen Codes bekommen sie eins:

Code: Alles auswählen

OpenWindow(0,0,0,320,240,"",#PB_Window_ScreenCentered|#PB_Window_BorderLess)
SetWindowLong_(WindowID(0),#GWL_STYLE,GetWindowLong_(WindowID(0),#GWL_STYLE) | #WS_SYSMENU| #WS_MINIMIZEBOX)

hwndmenu=GetSystemMenu_(WindowID(0),0)

RemoveMenu_(hwndmenu,#SC_MAXIMIZE, #MF_REMOVE|#MF_BYCOMMAND)
RemoveMenu_(hwndmenu,#SC_MOVE, #MF_REMOVE|#MF_BYCOMMAND)
RemoveMenu_(hwndmenu,#SC_SIZE, #MF_REMOVE|#MF_BYCOMMAND)

CreateGadgetList(WindowID(0))
ButtonGadget(0,20,20,100,20,"Minimize")
ButtonGadget(1,20,50,100,20,"Close")

Quit=0
Repeat
  ev=WaitWindowEvent()
  Select ev
    Case #WM_SYSCOMMAND
      Select EventwParam()
        Case #SC_CLOSE	
         Quit=1
        ; Case #SC_MINIMIZE
        ; Case #SC_RESTORE
          
      EndSelect 
  Case  #PB_Event_Gadget
    Select EventGadget()
      Case 0
        ShowWindow_(WindowID(0), #SW_MINIMIZE)
      Case 1
        Quit=1
    EndSelect
EndSelect 
Until Quit
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Borderless Windows haben ja normalerweise kein Systemmenu in der Taskleiste.
Ah ne, wirklich?

Code: Alles auswählen

OpenWindow(0,0,0,400,300,"Yo Baby!!",#WS_POPUP | #WS_BORDER | #WS_SYSMENU | 1)

While WaitWindowEvent() ! 16 : Wend
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
Iggels
Beiträge: 53
Registriert: 17.02.2006 21:30

Beitrag von Iggels »

???

Dein Code entspricht meinem, nur das bei dir leider der minimieren Knopf deaktiviert ist. Außerdem sind noch die unnützen deaktivierten Einträge zu sehen wie Größe ändern, Verschieben etc , obwohl man die nicht benötigt.

Natürlich kann man

Code: Alles auswählen

OpenWindow(0,0,0,320,240,"",#PB_Window_ScreenCentered|#PB_Window_BorderLess)
SetWindowLong_(WindowID(0),#GWL_STYLE,GetWindowLong_(WindowID(0),#GWL_STYLE) | #WS_SYSMENU| #WS_MINIMIZEBOX)
 
auch schreiben als:

Code: Alles auswählen

OpenWindow(0,0,0,320,240,"",#PB_Window_ScreenCentered|#PB_Window_BorderLess | #WS_SYSMENU| #WS_MINIMIZEBOX)
ich hab den COde halt schnell zusammengeschustert...
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

interessant:

Code: Alles auswählen

Macro FBin( Value )
  Right("0000000000000000000000000000000"+Bin(Value),32)
EndMacro

Debug FBin(#PB_Window_ScreenCentered)
Debug FBin(#PB_Window_BorderLess)
Debug FBin(#PB_Window_SystemMenu)
Debug "--"
Debug FBin(#WS_POPUP)
Debug FBin(#WS_BORDER)
Debug FBin(#WS_SYSMENU)
Debug "--"
Debug FBin(#WS_DLGFRAME)
in der PB-Konstante #PB_Window_SystemMenu ist das Flag #WS_DLGFRAME gesetzt,
deswegen geht es mit PB-konstanten nicht....
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Wovon redest du eigentlich? Es geht nicht darum wie es aussieht sondern rein um die Tatsache das Ich deine Aussage widerlegt habe. Das sagest Borderless Fenster haben kein System Menü und das ist schlicht und ergreifend falsch.
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

Unter reinem PureBasic bis jetzt schon ...
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

PMV hat geschrieben:Unter reinem PureBasic bis jetzt schon ...
Siehe Kaeru's Post...
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

Deswegen hab ich deinen Post noch mal kommentiert, da du diesen
unter Kaeru Gamans Erklärung geschrieben hast. :wink:

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Radiate
Beiträge: 114
Registriert: 10.02.2008 16:40
Kontaktdaten:

Beitrag von Radiate »

Meckerbolzen ihr! :twisted:
» PureBasic 4.30
» AMD Athlon II X2 240 | 2048 RAM | Win XP SP 3
» Projekt(e): Fusion (eingestellt), SAS (eingestellt), Moviez
Benutzeravatar
HeX0R
Beiträge: 3054
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Leichenschänder du! :twisted:
Gesperrt