|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Узнать controlID по Handle |
|
Узнать controlID по Handle
|
Новый участник Сообщения: 6 |
Сразу извиняюсь за ламерский вопрос.
Вот есть GUICtrlGetHandle(controlID), по которой можно узнать handle, зная controlID. А как сделать обратно? |
|
Отправлено: 16:33, 13-05-2009 |
![]() Старожил Сообщения: 215
|
Профиль | Отправить PM | Цитировать А зачем?
При создании элемента возвращается его controlID |
------- "Что мы думаем, знаем или во что верим в конце концов не так уж и важно. Важно лишь то, что мы делаем." Джон Раскин
Отправлено: 18:52, 13-05-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Это если юзать GuiCtrlGreate... а _GuiCtrlGreate... (UDF) возвращают handle.
Вот в этом примере $slider2 не будет ловиться. #include <GuiConstantsEx.au3> #include <GuiSlider.au3> #include <WindowsConstants.au3> Example() Func Example() Local $slider1, $button, $msg $hGUI = GUICreate("(UDF Created) Slider Create", 350, 100) $slider1 = GUICtrlCreateSlider(2, 2, 300, 20) $slider2 = _GUICtrlSlider_Create($hGUI, 2, 50, 300, 20, BitOR($TBS_TOOLTIPS, $TBS_AUTOTICKS)) GUISetState() While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $slider1 MsgBox(0,"","slider1") Case $slider2 MsgBox(0,"","(UDF Created) Slider") EndSwitch WEnd EndFunc ;==>Example зы. использвал [code] а серавно без подцветки ![]() |
Отправлено: 20:44, 13-05-2009 | #3 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата san45:
Func _GUICtrlGetID($hWnd) Local $aRet = DllCall("user32.dll", "int", "GetDlgCtrlID", "hwnd", $hWnd) Return $aRet[0] EndFunc Цитата san45:
Но с GUIGetMsg оно работать не будет, и не должно, там ControlID серийный, т.е начинается с 10000, и GUIGetMsg его не обрабатывает. Для _GUICtrlSlider_Create используется обработчик сообщении WM_NOTIFY: #include <GuiConstantsEx.au3> #include <GuiSlider.au3> #include <WindowsConstants.au3> ; Global $iSlider_Event = 0 $hGUI = GUICreate("(UDF Created) Slider Create", 350, 100) $slider1 = GUICtrlCreateSlider(2, 2, 300, 20) $slider2 = _GUICtrlSlider_Create($hGUI, 2, 50, 300, 20, BitOR($TBS_TOOLTIPS, $TBS_AUTOTICKS)) GUISetState() GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $slider1 MsgBox(0,"","slider1") EndSwitch If $iSlider_Event Then $iSlider_Event = 0 MsgBox(0,"","(UDF Created) Slider") EndIf WEnd Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam) Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndSlider $hWndSlider = $slider2 If Not IsHWnd($slider2) Then $hWndSlider = GUICtrlGetHandle($slider2) $tNMHDR = DllStructCreate($tagNMHDR, $ilParam) $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom")) $iIDFrom = DllStructGetData($tNMHDR, "IDFrom") $iCode = DllStructGetData($tNMHDR, "Code") Switch $hWndFrom Case $hWndSlider Switch $iCode Case $NM_RELEASEDCAPTURE ; The control is releasing mouse capture $iSlider_Event = 1 EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc |
||
------- Альберт Эйнштейн P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©» http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community Последний раз редактировалось Creat0R, 13-05-2009 в 22:35. Отправлено: 22:23, 13-05-2009 | #4 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
controlID - когда параметр отсутствует!? | semiono | AutoIt | 3 | 02-01-2010 22:00 | |
Как узнать? | Grub | Хочу все знать | 2 | 18-09-2007 14:29 | |
ThreadId -> Handle | Andreich | Программирование и базы данных | 4 | 06-08-2004 14:31 | |
Как узнать? | Mackill | Защита компьютерных систем | 11 | 05-05-2003 19:03 | |
Хотелось бы узнать... | MF CAP | О сайте и форуме | 37 | 16-06-2002 22:04 |
|