Tested with PB 5.72 x86 - Windows 10 2004 x64
Code: Select all
Global Hook,hWnd,oldProc,x,y,w,h
Procedure ReqProc(hWnd, uMsg, wParam, lParam)
Select uMsg
Case #WM_SIZE,#WM_MOVE,#WM_PAINT
MoveWindow_(hWnd,x,y,w,h,1)
Case #WM_NCLBUTTONDOWN
SetWindowLongPtr_(hWnd, #GWL_WNDPROC,0)
EndSelect
ProcedureReturn CallWindowProc_(oldProc, hWnd, uMsg, wParam, lParam)
EndProcedure
Procedure HookCB ( uMsg , wParam , lParam)
Select uMsg
Case #HCBT_ACTIVATE
hWnd = wParam
oldProc = SetWindowLongPtr_(hWnd, #GWL_WNDPROC, @ReqProc())
UnhookWindowsHookEx_ (Hook)
EndSelect
ProcedureReturn Result
EndProcedure
x = 100
y = 100
w = 800
h = 600
Hook = SetWindowsHookEx_ ( #WH_CBT, @ HookCB () , 0, GetCurrentThreadId_ ())
Pattern$ = "Text (*.txt)|*.txt;*.bat|PureBasic (*.pb)|*.pb|All files (*.*)|*.*"
Pattern = 0
File$ = OpenFileRequester("Please choose file to load", StandardFile$, Pattern$, Pattern)