| 1 | ; #FUNCTION# ===================================================== |
|---|
| 2 | ; Name...........: __GUICtrlTab_ClickTab |
|---|
| 3 | ; Description ...: Clicks a tab |
|---|
| 4 | ; Syntax.........: _GUICtrlTab_ClickTab($hWnd, $iIndex[, $sButton = "left"[, $fMove = False[, |
|---|
| 5 | ; $iClicks = 1[, $iSpeed = 1]]]]) |
|---|
| 6 | ; Parameters ....: $hWnd - Handle to control |
|---|
| 7 | ; $iIndex - Specifies the zero based index of the item |
|---|
| 8 | ; $fButton - Button to click with |
|---|
| 9 | ; $fMove - If True, the mouse will be moved. |
|---|
| 10 | ; - If False, the mouse does not move. |
|---|
| 11 | ; $iClicks - Number of clicks |
|---|
| 12 | ; $iSpeed - Mouse movement speed |
|---|
| 13 | ; Return values .: |
|---|
| 14 | ; Author ........: Paul Campbell (PaulIA) |
|---|
| 15 | ; Modified.......: Gary Frost (gafrost) |
|---|
| 16 | ; : PsaltyDS - Modified to use ControlClick() when $fMove = False so window |
|---|
| 17 | ; does not have to be active |
|---|
| 18 | ; Remarks .......: |
|---|
| 19 | ; Related .......: |
|---|
| 20 | ; Link ..........; |
|---|
| 21 | ; Example .......; Yes |
|---|
| 22 | ; ================================================================ |
|---|
| 23 | Func __GUICtrlTab_ClickTab($hwnd, $iIndex, $sButton = "left", $fMove = False, $iClicks = 1, $iSpeed = 1) |
|---|
| 24 | Local $iX, $iY, $tPoint, $tRect, $iMode, $aPos, $hWinParent, $avTabPos |
|---|
| 25 | If $Debug_TAB Then _GUICtrlTab_ValidateClassName($hwnd) |
|---|
| 26 | If Not IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) |
|---|
| 27 | |
|---|
| 28 | If Not $fMove Then |
|---|
| 29 | ; Don't move mouse, use ControlClick() |
|---|
| 30 | $hWinParent = _WinAPI_GetParent($hwnd) |
|---|
| 31 | $avTabPos = _GUICtrlTab_GetItemRect($hwnd, $iIndex) |
|---|
| 32 | $iX = $avTabPos[0] + (($avTabPos[2] - $avTabPos[0]) / 2) |
|---|
| 33 | $iY = $avTabPos[1] + (($avTabPos[3] - $avTabPos[1]) / 2) |
|---|
| 34 | ControlClick($hWinParent, "", $hwnd, $sButton, $iClicks, $iX, $iY) |
|---|
| 35 | Else |
|---|
| 36 | ; Original code to move mouse and click (requires active window) |
|---|
| 37 | $tRect = _GUICtrlTab_GetItemRectEx($hwnd, $iIndex) |
|---|
| 38 | $tPoint = _WinAPI_PointFromRect($tRect, True) |
|---|
| 39 | $tPoint = _WinAPI_ClientToScreen($hwnd, $tPoint) |
|---|
| 40 | _WinAPI_GetXYFromPoint($tPoint, $iX, $iY) |
|---|
| 41 | $iMode = Opt("MouseCoordMode", 1) |
|---|
| 42 | MouseClick($sButton, $iX, $iY, $iClicks, $iSpeed) |
|---|
| 43 | Opt("MouseCoordMode", $iMode) |
|---|
| 44 | EndIf |
|---|
| 45 | EndFunc ;==>__GUICtrlTab_ClickTab |
|---|