ViSiToR

Silver Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору NIKZZZZ Цитата: ее аналог для поиска по подкаталогам | Отлично, осталось только организовать её так, чтобы не было Global'ов . Kauffman Цитата: сделать так, чтобы событие при клике по Pic или Label происходило только после отпускания кнопки мыши | Знаю что решение дано, но хочу предложить альтернативу, имхо, если потребуется более чем один контрол вот так проверять, использовать общую функцию намного удобнее: Код: #include <GuiConstants.au3> Global $Web_Hovered_Mark = 1 Global $Email_Hovered_Mark = 1 $Gui = GuiCreate("Usage of <Link in GUI> Demo", 200, 120) $Web_Page_Label = GUICtrlCreateLabel("Web Page", 10, 40) GUICtrlSetCursor(-1, 0) $Email_Label = GUICtrlCreateLabel("Email", 10, 70) GUICtrlSetCursor(-1, 0) GUISetState() While 1 Switch GUIGetMsg() Case -3 Exit Case $Web_Page_Label ClickHandlerProc($Web_Page_Label, "http://autoitscript.com", $Gui) Case $Email_Label ClickHandlerProc($Email_Label, "mailto:somemail@gmail.com", $Gui) EndSwitch ;Тут проверяем курсор мышки над элементами (для подсветки) HoverLabelProc($Web_Hovered_Mark, $Web_Page_Label, "SetColorProc", 0x0000FF, 0x0, $Gui) HoverLabelProc($Email_Hovered_Mark, $Email_Label, "SetColorProc", 0x0000FF, 0x0, $Gui) WEnd Func ClickHandlerProc($CtrlID, $URL, $hWnd) Local $GetCurInfo = GUIGetCursorInfo($hWnd) While $GetCurInfo[2] = 1 $GetCurInfo = GUIGetCursorInfo($hWnd) Sleep(10) WEnd If $GetCurInfo[4] = $CtrlID Then ShellExecute($URL) EndFunc Func HoverLabelProc(ByRef $HoverMark, $CtrlID, $CallFuncProc='', $Param_1='', $Param_2='', $hWnd=0) Local $GetCurInfo = GUIGetCursorInfo($hWnd) If Not IsArray($GetCurInfo) Then Return If $HoverMark = 1 And $GetCurInfo[4] = $CtrlID Then Call($CallFuncProc, $CtrlID, $Param_1) $HoverMark = 0 ElseIf $HoverMark = 0 And $GetCurInfo[4] <> $CtrlID Then Call($CallFuncProc, $CtrlID, $Param_2) $HoverMark = 1 EndIf EndFunc Func SetColorProc($CtrlID, $Color) GUICtrlSetColor($CtrlID, $Color) EndFunc |
---------- ViSiToR a.k.a CreatoR CreatoR это не ник, CreatoR это стиль жизни! |
|