not resizable:
Code: Select all
Procedure Exit()
End
EndProcedure
Procedure LeftMouseDown()
Shared MouseDown, OffsetX, OffsetY
MouseDown = #True
offsetX = WindowMouseX(0)
OffsetY = WindowMouseY(0)
EndProcedure
Procedure LeftMouseUp()
Shared MouseDown
MouseDown = #False
EndProcedure
Procedure MouseMove()
Shared MouseDown, OffsetX, OffsetY
If MouseDown And GetGadgetAttribute(1,#PB_Canvas_Buttons)&#PB_Canvas_LeftButton
ResizeWindow(0,DesktopMouseX()-OffsetX,DesktopMouseY()-OffsetY,#PB_Ignore,#PB_Ignore)
EndIf
EndProcedure
If OpenWindow(0, 0, 0, 800, 600, "Moveable window", #PB_Window_BorderLess | #PB_Window_ScreenCentered)
ButtonGadget(0,10,10,100,25,"Exit")
BindEvent(#PB_Event_Gadget,@Exit(),0,0,#PB_EventType_LeftClick)
CanvasGadget(1,120,10,200,200)
BindEvent(#PB_Event_Gadget,@LeftMouseDown(),0,1,#PB_EventType_LeftButtonDown)
BindEvent(#PB_Event_Gadget,@LeftMouseUp() ,0,1,#PB_EventType_LeftButtonUp)
BindEvent(#PB_Event_Gadget,@MouseMove() ,0,1,#PB_EventType_MouseMove)
If StartDrawing(CanvasOutput(1))
Box(0,0,OutputWidth(),OutputHeight(),RGB(0,0,128))
StopDrawing()
EndIf
Repeat:WaitWindowEvent():ForEver
EndIf
resizable:
Code: Select all
OpenWindow(1,0,0,800,600,"rezizable",#WS_SIZEBOX|#PB_Window_BorderLess|#PB_Window_ScreenCentered)
ButtonGadget(1,10,10,60,20,"Close")
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow, #PB_Event_Gadget
Break
Case #WM_LBUTTONDOWN
SendMessage_(WindowID(1), #WM_NCLBUTTONDOWN, #HTCAPTION , #Null)
EndSelect
ForEver
M.