jamesstp20 Posted July 5, 2011 Posted July 5, 2011 (edited) Hello All! I made a GUI but I would like to change the mouse cursor ONLY for the GUI. The thing is that I found that which work perfectly but for everywhere in the screen and in any application Global Const $OCR_APPSTARTING = 32650 Global Const $OCR_NORMAL = 32512 Global Const $OCR_CROSS = 32515 Global Const $OCR_HAND = 32649 Global Const $OCR_IBEAM = 32513 Global Const $OCR_NO = 32648 Global Const $OCR_SIZEALL = 32646 Global Const $OCR_SIZENESW = 32643 Global Const $OCR_SIZENS = 32645 Global Const $OCR_SIZENWSE = 32642 Global Const $OCR_SIZEWE = 32644 Global Const $OCR_UP = 32516 Global Const $OCR_WAIT = 32514 _SetCursor("Project11.cur", $OCR_NORMAL) ;================================================================== ; $s_file - file to load cursor from ; $i_cursor - system cursor to change ;================================================================== Func _SetCursor($s_file, $i_cursor) Local $newhcurs, $lResult $newhcurs = DllCall("user32.dll", "int", "LoadCursorFromFile", "str", $s_file) If Not @error Then $lResult = DllCall("user32.dll", "int", "SetSystemCursor", "int", $newhcurs[0], "int", $i_cursor) If Not @error Then $lResult = DllCall("user32.dll", "int", "DestroyCursor", "int", $newhcurs[0]) Else MsgBox(0, "Error", "Failed SetSystemCursor") EndIf Else MsgBox(0, "Error", "Failed LoadCursorFromFile") EndIf EndFunc ;==>_SetCursor Cursor File : http://www.mediafire.com/?x8xf92a7u9n1rx6 Thanks ! Edited July 5, 2011 by jamesstp20
monoscout999 Posted July 5, 2011 Posted July 5, 2011 (edited) I found the function example from the WinAPIEx library, and i do some mods to adapt it.#include <winapiex.au3> $hGUI = Guicreate("My Cursos by monoscout999",-1,-1) $Label = GUICtrlCreateLabel('', 100, 100, 200, 200) $hCursor = _winapi_LoadCursorFromFile(@Scriptdir&"\Project11.cur") GUIRegisterMsg($WM_SETCURSOR, 'WM_SETCURSOR') Guisetstate() Do until GuigetMsg() = -3 _WinAPI_DestroyCursor($hCursor) Func WM_SETCURSOR($hWnd, $iMsg, $wParam, $lParam) Switch $hWnd Case $hGUI _WinAPI_SetCursor($hCursor) Return 0 EndSwitch Return "GUI_RUNDEFMSG" EndFunc ;==>WM_SETCURSORLink to download and place it in the include folder in the autoit instaled folder. Maybe this place: C:\Program Files (x86)\AutoIt3\IncludePut you cursor file in the same of the script or edit the line whit the function _winapi_LoadCursorFromFile(...Path and filename of the cursor...)You need to use the functions_winapi_LoadCursorFromFile()_WinAPI_SetCursor()And register the message WM_SETCURSOR...to make it work.If you have any question don`t doubt to do it here Good Look. EDITED: Added some info.EDIT: Maybe the problem is from the function or maybe is your cursor, but the hotspot is a few pixels left from the arrow point.EDITTED: More info. Edited July 5, 2011 by monoscout999
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now