MnM
Post-Hardcore
- Сообщения
- 679
- Репутация
- 90
Здравствуйте, хотелось бы попросить о помощи т.к. сам я уже слабо понимаю:
Нужно для элемента Edit присвоить курсор текстового типа. Да это легко буквально в 1 функцию -
но дело в том что к текстовому элементу присвоена функция которая "перехватывает" все сообщения в предложенную функцию, из-за чего выше упомянутая функция не работает.
Пример скрипта таков:
Для более понятного разъяснения для чего мне это требуется выложу клип где видно что курсор на Windows8 и Windows8.1 для некоторых окон включая созданных AutoIt, плохо устанавливается смешиваясь с простым, на окнах Edit.
Нужно для элемента Edit присвоить курсор текстового типа. Да это легко буквально в 1 функцию -
Код:
GUICtrlSetCursor($Ctrl,5)
но дело в том что к текстовому элементу присвоена функция которая "перехватывает" все сообщения в предложенную функцию, из-за чего выше упомянутая функция не работает.
Пример скрипта таков:
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WinAPI.au3>
OnAutoItExitRegister("__Exit")
Global $mEdit=DllCallbackRegister("__MsgMenu","ptr","hwnd;uint;wparam;lparam")
$GUI = GUICreate("", 399, 284)
$Edit1 = GUICtrlCreateEdit("", 0, 0, 377, 113)
$Edit2 = GUICtrlCreateEdit("", 0, 128, 377, 137)
$hEdit2=GUICtrlGetHandle($Edit2)
Global $wProc=_WinAPI_SetWindowLong($hEdit2,0xFFFFFFFC,DllCallbackGetPtr($mEdit))
GUICtrlSetCursor($Edit1,5)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func __MsgMenu($hWnd,$Msg,$wParam,$lParam)
If $hWnd=$hEdit2 Then
Switch $Msg
Case 0x0101
If GUICtrlRead($Edit2)="Exit" Then
Exit
EndIf
EndSwitch
EndIf
Local $aRet=DllCall("user32.dll", "int", "CallWindowProc", "ptr", $wProc, _
"hwnd", $hWnd, "uint", $Msg, "wparam", $wParam, "lparam", $lParam)
Return $aRet[0]
EndFunc
Func __Exit()
GUIDelete($GUI)
DllCallbackFree($mEdit)
EndFunc
Для более понятного разъяснения для чего мне это требуется выложу клип где видно что курсор на Windows8 и Windows8.1 для некоторых окон включая созданных AutoIt, плохо устанавливается смешиваясь с простым, на окнах Edit.