Re: Moving a borderless window ?
Posted: Thu Oct 22, 2015 11:57 am
This should do it nicely:Michael Vogel wrote:... how to keep #PB_EventType_LeftClick events working?
Code: Select all
Enumeration
#MainWindow
#Canvas
#CanvasMenu
EndEnumeration
Procedure CanvasProc(hWnd, uMsg, wParam, lParam)
Static winX, winY
Shared sysProc
Select uMsg
Case #WM_LBUTTONDOWN
winX = WindowX(#MainWindow)
winY = WindowY(#MainWindow)
SendMessage_(WindowID(#MainWindow), #WM_NCLBUTTONDOWN, #HTCAPTION, 0)
SendMessage_(GadgetID(#Canvas), #WM_LBUTTONUP, #MK_LBUTTON, lParam)
Case #WM_LBUTTONUP
If winX = WindowX(#MainWindow) And winY = WindowY(#MainWindow)
DisplayPopupMenu(#CanvasMenu, WindowID(#MainWindow))
EndIf
EndSelect
ProcedureReturn CallWindowProc_(sysProc, hWnd, uMsg, wParam, lParam)
EndProcedure
CreatePopupMenu(#CanvasMenu)
MenuItem(1, "Left single click...")
wFlags = #PB_Window_ScreenCentered | #PB_Window_BorderLess
OpenWindow(#MainWindow, #PB_Any, #PB_Any, 500, 500, "", wFlags)
CanvasGadget(#Canvas, 5, 5, 490, 490)
SetWindowColor(#MainWindow, #Red)
sysProc = SetWindowLongPtr_(GadgetID(#Canvas), #GWL_WNDPROC, @CanvasProc())
While WaitWindowEvent() ! #PB_Event_CloseWindow : Wend