Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <GUIConstantsEx.au3>
- #include <WindowsConstants.au3>
- #include <WinAPISysWin.au3>
- #include <WinAPIMisc.au3>
- Global $w = 300, $h = 250
- Global $cb = DllCallbackRegister('callback', 'int', 'hwnd;uint;wparam;lparam')
- Global $oldproc;
- #Region ### START Koda GUI section ### Form=
- $Form1 = GUICreate("Form1", $w, $h, -1, -1, $ws_popup)
- GUICtrlCreateLabel('', 0, 0, 5, $h)
- GUICtrlSetBkColor(-1, 0x0080ff)
- GUICtrlSetState(-1, 128)
- GUISetState(@SW_SHOW)
- $oldproc = _WinAPI_SetWindowLong($Form1, -4, DllCallbackGetPtr($cb))
- #EndRegion ### END Koda GUI section ###
- While 1
- $nMsg = GUIGetMsg()
- Switch $nMsg
- Case $GUI_EVENT_CLOSE
- GUIDelete()
- DllCallbackFree($cb)
- Exit
- EndSwitch
- WEnd
- Func callback($hwnd, $msg, $wp, $lp)
- Switch $msg
- Case 0x0084
- return NCHITTEST($hwnd, $lp)
- EndSwitch
- Return _WinAPI_CallWindowProcW($oldproc, $hwnd, $msg, $wp, $lp)
- EndFunc
- Func NCHITTEST($hwnd, $lParam)
- Local $iSide = 0, $iTopBot = 0, $Cur = 0
- Local $wPos = WinGetPos($hWnd)
- Local $tPos = _WinAPI_GetMousePos(True, $hWnd)
- Local $bMarg = 10 ; border size
- If Not @error Then
- If $tPos.x < $bMarg Then $iSide = 1 ; left
- If $tPos.x > ($wPos[2] - $bMarg) Then $iSide = 2 ; right
- If $tPos.y < $bMarg Then $iTopBot = 3 ; top
- If $tPos.y > ($wPos[3] - $bMarg) Then $iTopBot = 6 ; bottom
- $Cur = $iSide + $iTopBot
- EndIf
- If WinGetState($hWnd) < 32 Then ; // check win not maximize
- Local $HT = 2
- Switch $Cur
- Case 1
- $HT = 10
- Case 2
- $HT = 11
- Case 3
- $HT = 12
- Case 4
- $HT = 13
- Case 5
- $HT = 14
- Case 6
- $HT = 15
- Case 7
- $HT = 16
- Case 8
- $HT = 17
- EndSwitch
- If $HT <> 2 Then Return $HT
- EndIf
- If Abs(BitAND(BitShift($lParam, 16), 0xFFFF) - $wPos[1]) < 30 Then Return 2
- Return 1 ; client
- EndFunc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement