Ticket #1589: __GUICtrlTab_ClickTab.au3

File __GUICtrlTab_ClickTab.au3, 2.2 KB (added by exodius <exodius@…>, on Apr 29, 2010 at 6:13:41 AM)

GUICtrlTab_ClickTab by PsaltyDS

Line 
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; ================================================================
23Func __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
45EndFunc ;==>__GUICtrlTab_ClickTab