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 






