I'm trying to get a borderless window to be sizable, and I can't seem to find any solution to achieve that, I thought I could try to redraw the nonclient area when a #WM_NCPAINT message came in, but I had no success, here is my tests so far...
Code: Select all
Procedure NouvelleProc(hWnd.i, Msg.l, wParam.i, lParam.i)
	Protected OriginProc.i, HDC, Rect.Rect, brush, Pen
	
	OriginProc= GetProp_(hWnd, "OriginProc")
	
	Select Msg
		Case #WM_NCPAINT
			SendMessage_(hWnd, #WM_NCACTIVATE, 1, 0)
			hdc=GetDCEx_(hwnd,wParam,#DCX_WINDOW|#DCX_CACHE|#DCX_INTERSECTRGN|#DCX_LOCKWINDOWUPDATE)
			GetWindowRect_(hWnd,Rect)
			brush = CreateSolidBrush_(RGB(0,180,180))
			SelectObject_(HDC,brush)
			Rectangle_(hdc,0,0,rect\right - Rect\left,Rect\bottom - Rect\top)
			DeleteObject_(Pen)
			DeleteObject_(brush)
			ReleaseDC_(hWnd,HDC)
			RedrawWindow_(hWnd,Rect,wParam,#RDW_UPDATENOW)
			ProcedureReturn 0
		Case #WM_NCACTIVATE
			wParam=1
		Case #WM_NCDESTROY
			SetWindowLongPtr_(hWnd, #GWLP_WNDPROC, OriginProc)
			RemoveProp_(hWnd, "OriginProc")
	EndSelect
	
			ProcedureReturn CallWindowProc_(OriginProc, hWnd, Msg, wParam, lParam)
EndProcedure
If OpenWindow (0,0,0,322,275, "get off, you ugly border" , #PB_Window_ScreenCentered|#PB_Window_SizeGadget|#PB_Window_Invisible )
	
	StickyWindow(0,1)
	
	OriginProc = SetWindowLongPtr_(WindowID(0), #GWLP_WNDPROC, @NouvelleProc())
	SetProp_(WindowID(0), "OriginProc", OriginProc)
	HideWindow(0,#False)
	Repeat
		Event = WaitWindowEvent()
		Select Event
			Case #PB_Event_CloseWindow
				Quit=1
		EndSelect
	Until Quit=1
EndIf 






