|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] отловить двойной клик по GuiCtrlCreateList |
|
|
[решено] отловить двойной клик по GuiCtrlCreateList
|
Старожил Сообщения: 398 |
Профиль | Сайт | Отправить PM | Цитировать Здравствуйте!
Вобщем такой вопросик возник. Как из этого: #include <GuiConstantsEx.au3> #include <AVIConstants.au3> #include <TreeViewConstants.au3> ; GUI GuiCreate("Sample GUI", 400, 400) ; LIST $ggg = GuiCtrlCreateList("", 5, 190, 100, 90) GuiCtrlSetData(-1, "a.Sample|b.List|c.Control|d.Here", "b.List") GuiCtrlSetData(-1, "") GuiCtrlSetData(-1, "аенгеаг.Sample|b.List", "b.List") ; GUI MESSAGE LOOP GuiSetState() While 1 $msg = GuiGetMsg() If $msg = $GUI_EVENT_CLOSE Then Exit If $msg = $ggg Then $gggg = GUICtrlRead($ggg) MsgBox(0, "", $gggg) EndIf WEnd |
|
------- Отправлено: 20:33, 04-04-2009 |
Старожил Сообщения: 460
|
Профиль | Отправить PM | Цитировать #include <GuiConstantsEx.au3> #include <AVIConstants.au3> #include <TreeViewConstants.au3> #include <Constants.au3> #include <GUIListBox.au3> #include <WindowsConstants.au3> ; GUI GuiCreate("Sample GUI", 400, 400) ; LIST Global $ggg = GuiCtrlCreateList("", 5, 190, 100, 90) GuiCtrlSetData(-1, "a.Sample|b.List|c.Control|d.Here", "b.List") GuiCtrlSetData(-1, "") GuiCtrlSetData(-1, "аенгеаг.Sample|b.List", "b.List") GUIRegisterMsg($WM_COMMAND, "WM_COMMAND") ; GUI MESSAGE LOOP GuiSetState() While 1 $msg = GuiGetMsg() If $msg = $GUI_EVENT_CLOSE Then Exit ;~ If $msg = $ggg Then ;~ $gggg = GUICtrlRead($ggg) ;~ MsgBox(0, "", $gggg) ;~ EndIf WEnd Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam) #forceref $hWnd, $iMsg Local $hWndFrom, $iIDFrom, $iCode, $hWndListBox If Not IsHWnd($ggg) Then $hWndListBox = GUICtrlGetHandle($ggg) $hWndFrom = $ilParam $iIDFrom = BitAND($iwParam, 0xFFFF) ; Low Word $iCode = BitShift($iwParam, 16) ; Hi Word Switch $hWndFrom Case $hWndListBox Switch $iCode Case $LBN_DBLCLK ; Sent when the user double-clicks a string in a list box _DebugPrint("$LBN_DBLCLK" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _ "-->IDFrom:" & @TAB & $iIDFrom & @LF & _ "-->Code:" & @TAB & $iCode) ; no return value MsgBox(64, "--> hWndFrom:" & $hWndFrom, "$LBN_DBLCLK") Case $LBN_ERRSPACE ; Sent when a list box cannot allocate enough memory to meet a specific request _DebugPrint("$LBN_ERRSPACE" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _ "-->IDFrom:" & @TAB & $iIDFrom & @LF & _ "-->Code:" & @TAB & $iCode) ; no return value Case $LBN_KILLFOCUS ; Sent when a list box loses the keyboard focus _DebugPrint("$LBN_KILLFOCUS" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _ "-->IDFrom:" & @TAB & $iIDFrom & @LF & _ "-->Code:" & @TAB & $iCode) ; no return value Case $LBN_SELCANCEL ; Sent when the user cancels the selection in a list box _DebugPrint("$LBN_SELCANCEL" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _ "-->IDFrom:" & @TAB & $iIDFrom & @LF & _ "-->Code:" & @TAB & $iCode) ; no return value Case $LBN_SELCHANGE ; Sent when the selection in a list box has changed _DebugPrint("$LBN_SELCHANGE" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _ "-->IDFrom:" & @TAB & $iIDFrom & @LF & _ "-->Code:" & @TAB & $iCode) ; no return value Case $LBN_SETFOCUS ; Sent when a list box receives the keyboard focus _DebugPrint("$LBN_SETFOCUS" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _ "-->IDFrom:" & @TAB & $iIDFrom & @LF & _ "-->Code:" & @TAB & $iCode) ; no return value EndSwitch EndSwitch ; Proceed the default Autoit3 internal message commands. ; You also can complete let the line out. ; !!! But only 'Return' (without any value) will not proceed ; the default Autoit3-message in the future !!! Return $GUI_RUNDEFMSG EndFunc ;==>WM_COMMAND Func _DebugPrint($s_text) $s_text = StringReplace($s_text, @LF, @LF & "-->") ConsoleWrite("!===========================================================" & @LF & _ "+===========================================================" & @LF & _ "-->" & $s_text & @LF & _ "+===========================================================" & @LF) EndFunc ;==>_DebugPrint |
------- Отправлено: 20:48, 04-04-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 398
|
Профиль | Сайт | Отправить PM | Цитировать Спасибо,
Цитата proxy:
А что такое UDF? |
|
------- Отправлено: 21:09, 04-04-2009 | #3 |
Старожил Сообщения: 460
|
Профиль | Отправить PM | Цитировать Цитата:
- Проверка переменной на принадлежность к типу HWND (т.е. то, что в переменной это хэндл (указатель) на окно или же нет) Справка AutoIt > Указатель функций > Арифметические функции > BitAND - Выполнить побитовое логическое умножение AND (для вычисления значений, хороший пример на WinGetState) Справка AutoIt > Указатель функций > Арифметические функции > BitShift - Выполнить битовый сдвиг числа (для вычисления значений) Английская справка Online: IsHWnd BitAND BitShift Справка по UDF: <папка установки AutoIt>\UDFs.chm (название файла немного может отличатся) Все стандартные функции есть в русской справке. Но необходимо сверяться с английской, т.к. русская справка не по последней версии AutoIt, со времинем запоминаются отличия, их не много. Либо сразу "общаться" только с английской. В справке по UDF (Справка пользовательских функций) содержит не стандартный функции - они все находятся в Include файлах (<папка установки AutoIt>\Include\). Маленькая часть UDF есть в русской справке: Справка AutoIt > Указатель библиотечных функций |
|
------- Отправлено: 21:22, 04-04-2009 | #4 |
Старожил Сообщения: 398
|
Профиль | Сайт | Отправить PM | Цитировать Скажите ещё пожалуйста как можно удалить элемент из GuiCtrlCreateList?
|
|
------- Отправлено: 23:17, 04-04-2009 | #5 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата morgan1991:
|
|
------- Отправлено: 23:39, 04-04-2009 | #6 |
Старожил Сообщения: 398
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Creat0R:
|
|
------- Отправлено: 23:57, 04-04-2009 | #7 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата morgan1991:
Просто вместо индекса поставить выделенную строку: #include <GuiConstantsEx.au3> #include <GUIListBox.au3> ; ; Create GUI GUICreate("List Box Delete String", 400, 300) $hListBox = GUICtrlCreateList("", 2, 2, 396, 270) $DeleteString_Button = GUICtrlCreateButton("Delete Selected", 2, 275, 120, 20) GUISetState() ; Add strings _GUICtrlListBox_BeginUpdate($hListBox) For $iI = 1 To 9 _GUICtrlListBox_AddString($hListBox, StringFormat("%d : List box string", $iI)) Next _GUICtrlListBox_EndUpdate($hListBox) ; Loop until user exits While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit Case $DeleteString_Button $iSelected_Index = _GUICtrlListBox_GetCurSel($hListBox) ; Delete selected string _GUICtrlListBox_DeleteString($hListBox, $iSelected_Index) ; Select current string $iSelected = _GUICtrlListBox_SetCurSel($hListBox, $iSelected_Index) If $iSelected = -1 Then _GUICtrlListBox_SetCurSel($hListBox, $iSelected_Index-1) EndSwitch WEnd |
|
------- Отправлено: 00:09, 05-04-2009 | #8 |
Старожил Сообщения: 398
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Отправлено: 00:19, 05-04-2009 | #9 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата morgan1991:
|
|
------- Отправлено: 00:37, 05-04-2009 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Отловить форму в IE | Lodoss | AutoIt | 3 | 26-11-2009 11:12 | |
[решено] Отловить visible text | Frost_Imp | AutoIt | 7 | 25-09-2009 12:55 | |
Как сделать двойной клик на объекте, без мышки? | Twix1124 | AutoIt | 2 | 26-07-2009 21:48 | |
[решено] Отловить нажатие по плюсику | morgan1991 | AutoIt | 6 | 30-06-2009 10:54 | |
Ошибка - [решено] Двойной клик на папку открывает поиск | Vahe | Microsoft Windows 2000/XP | 2 | 25-01-2009 18:35 |
|