SystemMenu trotz Borderless Window
Verfasst: 20.02.2007 23:18
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