Custom Query

Filters
 
Or
 
  
 
Columns

Show under each result:


Results (196 - 198 of 3866)

Ticket Resolution Summary Owner Reporter
#703 Fixed _GUICtrlListBox_ClickItem() function does not always click on List Box item Gary Bowmore
Description

Enviroment: WinXP Home SP3 AutoIt 3.2.12.1 AutoIt Beta 3.2.13.11

The coords of the centre of the item are calculated in screen coords, but the click is preformed using whatever MouseCoordMode the user has set. The MouseCoordMode option needs setting to 1 and then resetting back to the original value before exiting the function.

Code to demonstrate existing behaviour of existing function and that of the suggested fix below. GuiControlsItemClickTest.exe is a compiled version of the Sample GUI from the examples folder to give some tabs to click. GuiControlsItemClickTest.exe is the SampleControls.au3 from the AutoIt\Examples folder compliled and saved as GuiControlsItemClickTest.exe

Opt("MustDeclareVars", 1)
Opt("WinWaitDelay", 100)
Opt("WinTitleMatchMode", 4)
Opt("WinDetectHiddenText", 1)
Opt("MouseCoordMode", 2)
Opt("PixelCoordMode", 2)

#include <GuiListBox.au3>

Local $hWnd = 0 
Local $iCommandID = 0

Run(@ScriptDir & "\GuiControlsItemClickTest.exe")

For $ifunc = 0 To 1 
	;Display behaviour when mouse is not moved and then when mouse is moved
	For $iMove = 0 To 1
		;Use each of the MouseCoordMode in turn 
		For $iCoordMode = 0 To 2
			Opt("MouseCoordMode", $iCoordMode)
			WinActivate("Sample GUI")
			$hwnd = ControlGetHandle("Sample GUI","","ListBox1")
			If $ifunc = 0 Then
				;click on List Box Item 1 without moving mouse
				ToolTip("Standard UDF Function '_GUICtrlListBox_ClickItem()' MouseCoordMode = " & $iCoordMode & @CRLF & "Attempting To click on item 'a.Sample' mouse moving is " & ($iMove <> 0), 20, 20)
				WinActivate("Sample GUI")
				_GUICtrlListBox_ClickItem($hWnd, 0, "left", ($iMove <> 0), 1, 50)
				Sleep(3000)
				;click on List Box Item 2 moving mouse
				ToolTip("Standard UDF Function '_GUICtrlListBox_ClickItem()' MouseCoordMode = " & $iCoordMode & @CRLF & "Attempting To click on item 'b.List' mouse moving is " & ($iMove <> 0), 20, 20)
				WinActivate("Sample GUI")
				_GUICtrlListBox_ClickItem($hWnd, 1, "left", ($iMove <> 0), 1, 50)
				Sleep(3000)
			Else
				;click on List Box Item 3 without moving mouse
				ToolTip("Modified UDF Function '_GUICtrlListBox_ClickItem()' MouseCoordMode = " & $iCoordMode & @CRLF & "Attempting To click on item 'c.Control' mouse moving is " & ($iMove <> 0), 20, 20)
				WinActivate("Sample GUI")
				MOD_GUICtrlListBox_ClickItem($hWnd, 2, "left", ($iMove <> 0), 1, 50)
				Sleep(3000)
				;click on List Box Item 4 moving mouse
				ToolTip("Modified UDF Function '_GUICtrlListBox_ClickItem()' MouseCoordMode = " & $iCoordMode & @CRLF & "Attempting To click on item 'd.Here' mouse moving is " & ($iMove <> 0), 20, 20)
				WinActivate("Sample GUI")
				MOD_GUICtrlListBox_ClickItem($hWnd, 3, "left", ($iMove <> 0), 1, 50)
				Sleep(3000)
			EndIf
		Next
	Next
Next
Exit


Func MOD_GUICtrlListBox_ClickItem($hWnd, $iIndex, $sButton = "left", $fMove = False, $iClicks = 1, $iSpeed = 0)
	If $Debug_LB Then _GUICtrlListBox_ValidateClassName($hWnd)
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)

	Local $iX, $iY, $tPoint, $tRect, $iMode, $aPos

	$tRect = _GUICtrlListBox_GetItemRectEx($hWnd, $iIndex)
	$tPoint = _WinAPI_PointFromRect($tRect)
	$tPoint = _WinAPI_ClientToScreen($hWnd, $tPoint)
	_WinAPI_GetXYFromPoint($tPoint, $iX, $iY)
	;Switch to screen MouseCoordMode 
	$iMode = Opt("MouseCoordMode", 1)
	If Not $fMove Then
		$aPos = MouseGetPos()
		_WinAPI_ShowCursor(False)
		;_WinAPI_ShowCursor does not seem to work on XP so set mouse speed it instant 
		MouseClick($sButton, $iX, $iY, $iClicks, 0)
		MouseMove($aPos[0], $aPos[1], 0)
		Sleep(3000)
		_WinAPI_ShowCursor(True)
	Else
		MouseClick($sButton, $iX, $iY, $iClicks, $iSpeed)
	EndIf
	;Switch back to user MouseCoordMode 
	Opt("MouseCoordMode", $iMode)
EndFunc   ;==>_GUICtrlListBox_ClickItem
#705 Fixed _GUICtrlToolbar_ClickButton() function does not always click on buttons Gary Bowmore
Description

Enviroment: WinXP Home SP3 AutoIt 3.2.12.1 AutoIt Beta 3.2.13.11

The coords of the centre of button are calculated in screen coords, but the click is preformed using whatever MouseCoordMode the user has set. The MouseCoordMode option needs setting to 1 and then resetting back to the original value before exiting the function.

Code to demonstrate existing behaviour of existing function and that of the suggested fix below. ToolbaButtonClickTest.exe is a compiled version of the Create a Toolbar control help file example to give some buttons to click. ToolbaButtonClickTest.exe is the compliled version of the attached file

Opt("MustDeclareVars", 1)
Opt("WinWaitDelay", 100)
Opt("WinTitleMatchMode", 4)
Opt("WinDetectHiddenText", 1)
Opt("MouseCoordMode", 2)
Opt("PixelCoordMode", 2)

#include <GuiToolBar.au3>

Local $hWnd = 0 
Local $iCommandID = 0

Run(@ScriptDir & "\ToolbaButtonClickTest.exe")

WinActivate("Toolbar")
$hWnd = ControlGetHandle("Toolbar", "", "ToolbarWindow321")
;Display behaviour of standard function first and the the modified version
For $ifunc = 0 To 1 
	;Display behaviour when mouse is not moved and then when mouse is moved
	For $iMove = 0 To 1
		;Use each of the MouseCoordMode in turn 
		For $iCoordMode = 0 To 2
			Opt("MouseCoordMode", $iCoordMode)
			For $i = 0 To 4
				$iCommandID = _GUICtrlToolbar_IndexToCommand($hWnd, $i)
				If $ifunc = 0 Then
					ToolTip("Standard UDF Function '_GUICtrlTab_ClickTab()' MouseCoordMod = " & $iCoordMode & @CRLF & "Attempting To click on button " & $i & " mouse moving is " & ($iMove <> 0), 20, 20)
					_GUICtrlToolbar_ClickButton($hWnd, $iCommandID, "left", ($iMove <> 0), 1, 50)
				Else
					ToolTip("Modified UDF Function '_GUICtrlTab_ClickTab()' MouseCoordMode = " & $iCoordMode & @CRLF & "Attempting To click on button " & $i & " mouse moving is " & ($iMove <> 0), 20, 20)
					MOD_GUICtrlToolbar_ClickButton($hWnd, $iCommandID, "left", ($iMove <> 0), 1, 50)
				EndIf
				Sleep(3000) ;time to see what happens
			Next
		Next
	Next
Next
Exit


Func MOD_GUICtrlToolbar_ClickButton($hWnd, $iCommandID, $sButton = "left", $fMove = False, $iClicks = 1, $iSpeed = 1)
	If $Debug_TB Then _GUICtrlToolbar_ValidateClassName($hWnd)
	Local $tPoint, $tRect, $iX, $iY, $iMode, $aPos

	$tRect = _GUICtrlToolbar_GetButtonRectEx($hWnd, $iCommandID)
	$tPoint = _WinAPI_PointFromRect($tRect)
	$tPoint = _WinAPI_ClientToScreen($hWnd, $tPoint)
	_WinAPI_GetXYFromPoint($tPoint, $iX, $iY)
	;Switch to screen MouseCoordMode 
	$iMode = Opt("MouseCoordMode", 1)
	If Not $fMove Then
		$aPos = MouseGetPos()
		_WinAPI_ShowCursor(False)
		;_WinAPI_ShowCursor does not seem to work on XP so set mouse speed it instant 
		MouseClick($sButton, $iX, $iY, $iClicks, 0)
		MouseMove($aPos[0], $aPos[1], 0)
		_WinAPI_ShowCursor(True)
	Else
		MouseClick($sButton, $iX, $iY, $iClicks, $iSpeed)
	EndIf
	;Switch back to user MouseCoordMode 
	Opt("MouseCoordMode", $iMode)
EndFunc   ;==>MOD_GUICtrlToolbar_ClickButton
#707 Fixed _GUICtrlMonthCal_Create Gary anonymous
Description

Ex.1 [autoit] #include <GUIConstantsEx.au3> #include <GuiMonthCal.au3> #include <WindowsConstants.au3> $hgui = GUICreate("Month Calendar Create", 1100, 600) $hmonthcal = _GUICtrlMonthCal_Create($hgui, 0, 0, $ws_border) GUISetState() Do Until GUIGetMsg() = $gui_event_close GUIDelete() autoit

Ex.2 [autoit] #include <GUIConstantsEx.au3> #include <GuiMonthCal.au3> #include <WindowsConstants.au3> $hgui = GUICreate("Month Calendar Create", 1100, 600) $hmonthcal = _GUICtrlMonthCal_Create($hgui, 300, 0, $ws_border) GUISetState() Do Until GUIGetMsg() = $gui_event_close GUIDelete() autoit

Ex.3 [autoit] #include <GUIConstantsEx.au3> #include <GuiMonthCal.au3> #include <WindowsConstants.au3> $hgui = GUICreate("Month Calendar Create", 1100, 600) $hmonthcal = _GUICtrlMonthCal_Create($hgui, 400, 0, $ws_border) GUISetState() Do Until GUIGetMsg() = $gui_event_close GUIDelete() autoit

in ex.1, ex.2 and ex.3 i try move MonthCal horizontally, but in ex.1 - 1 month ex.2 - 2 months ex.3 - 3 months

why? i want 1 month with _GUICtrlMonthCal_Create($hgui, 400, 0, $ws_border)

it is possible?

thank you

Note: See TracQuery for help on using queries.