1

Тема: AHK: ToolTip при наведении на контрол

Всем привет, есть вопрос.У меня не получается сделать так чтобы при наведении курсора на контрол Text выдавало ToolTip сообщение.Помогите сделать рабочий код.

Как сказал мой дед - Я твой дед

2

Re: AHK: ToolTip при наведении на контрол

В такой последовательности:


loop
{
  MouseGetPos
  controlgettext
  tooltip
}

Как использовать каждую из функций смотрите в справке.

Win 7 x64
AHK v1.1.24.00
                       Справка тебе в помощь.

3

Re: AHK: ToolTip при наведении на контрол

Немного не так я хотел, мне нужно чтобы наведя на определенный контрол мышкой, ToolTip показал бы какое нибудь сообщение например "Hello World"

Как сказал мой дед - Я твой дед

4 (изменено: Alectric, 2013-11-15 16:28:31)

Re: AHK: ToolTip при наведении на контрол

Тогда нужно знать: название окна и название контрола (Static1 или Button6 и т.д. определить можно с помощью AU3_Spy).

loop
{
  mousegetpos
  wingettitle
  if (wintitle="Название окна")  ; если определенное mousegetpos-ом окно соответствует заданному
    if ctrl=Button4 ; тоже самое с контролом
      tooltip,Какой-то текст
}

Win 7 x64
AHK v1.1.24.00
                       Справка тебе в помощь.

5 (изменено: serzh82saratov, 2013-11-15 19:45:05)

Re: AHK: ToolTip при наведении на контрол

Была такая тема

Alectric
Бесконечный цикл - это зло.

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.29.01 (Unicode 32-bit).

6

Re: AHK: ToolTip при наведении на контрол

serzh82saratov пишет:

Была такая тема

Alectric
Бесконечный цикл - это зло.

Взял скрипт из той темы, только почему он не работает на контрол "Text"?

Как сказал мой дед - Я твой дед

7 (изменено: Alectric, 2013-11-16 10:07:49)

Re: AHK: ToolTip при наведении на контрол

Off:

+ открыть спойлер
serzh82saratov пишет:

Alectric
Бесконечный цикл - это зло.

Значит я на темной стороне, выходит. И несу в форум зло.

Win 7 x64
AHK v1.1.24.00
                       Справка тебе в помощь.

8 (изменено: serzh82saratov, 2013-11-16 23:41:39)

Re: AHK: ToolTip при наведении на контрол

Взял скрипт из той темы, только почему он не работает на контрол "Text"?

Каюсь, на Text не проверял. Необходимо добавить стиль SS_NOTIFY, или метку перехода:


OnMessage(0x200, "WM_MOUSEMOVE")  
  
global Help_Text1 := "Подсказка для Text1"  
        , Help_Text2 := "Подсказка для Text2"  
 ; SS_NOTIFY := 0x100
Gui, Add, Text, vText1 +0x100, Text1
Gui, Add, Text, vText2 +0x100 y+50, Text2
Gui, Show  
return 
  
WM_MOUSEMOVE()   {  
    Static PrControl
    If (A_GuiControl <> PrControl)   {
        PrControl := A_GuiControl
        ToolTip, % Help_%PrControl% 
    }      
} 
Alectric пишет:

Значит я на темной стороне, выходит. И несу в форум зло.

Ну зачем же так буквально.
Просто такой цикл ощутимо нагрузит пк.

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.29.01 (Unicode 32-bit).

9

Re: AHK: ToolTip при наведении на контрол

Не согласен, что данный бесконечный цикл ощутимо нагрузит пк.
Поставить в конце sleep, 100 - и все будет ОК.
Или вы работаете на 486?

10

Re: AHK: ToolTip при наведении на контрол

Можно ещё и

SetBatchLines -1

добавить, у меня на I-3 временами 1% процесс ест. Если решать подобные задачи очевидным путём с бесконечным циклом проверок, 5 таких скриптов точно нагрузят, а их со временем с таким подходом точно накопится. И ещё, если цикл прервать другим потоком, то до его завершения ToolTip вы не увидите.

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.29.01 (Unicode 32-bit).

11

Re: AHK: ToolTip при наведении на контрол

serzh82saratov пишет:

Взял скрипт из той темы, только почему он не работает на контрол "Text"?

Каюсь, на Text не проверял. Необходимо добавить стиль SS_NOTIFY, или метку перехода:


OnMessage(0x200, "WM_MOUSEMOVE")  
  
global Help_Text1 := "Подсказка для Text1"  
        , Help_Text2 := "Подсказка для Text2"  
 ; SS_NOTIFY := 0x100
Gui, Add, Text, vText1 +0x100, Text1
Gui, Add, Text, vText2 +0x100 y+50, Text2
Gui, Show  
return 
  
WM_MOUSEMOVE()   {  
    Static PrControl
    If (A_GuiControl <> PrControl)   {
        PrControl := A_GuiControl
        ToolTip, % Help_%PrControl% 
    }      
} 

А как его отредактировать чтобы он работал только на контрол Text, а на Button не реагировал?

Как сказал мой дед - Я твой дед

12

Re: AHK: ToolTip при наведении на контрол

А где тут Button?

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.29.01 (Unicode 32-bit).

13

Re: AHK: ToolTip при наведении на контрол

Ладно не забивайте голову лишней морокой, сам сделал.

Как сказал мой дед - Я твой дед

14

Re: AHK: ToolTip при наведении на контрол

serzh82saratov пишет:

OnMessage(0x200, "WM_MOUSEMOVE") 
 
global Help_Text1 := "Подсказка для Text1" 
        , Help_Text2 := "Подсказка для Text2" 
; SS_NOTIFY := 0x100
Gui, Add, Text, vText1 +0x100, Text1
Gui, Add, Text, vText2 +0x100 y+50, Text2
Gui, Show 
return
 
WM_MOUSEMOVE()   { 
    Static PrControl
    If (A_GuiControl <> PrControl)   {
        PrControl := A_GuiControl
        ToolTip, % Help_%PrControl%
    }     
}

А реально ли реализовать ToolTip для неактивных (disabled) контролов?

15

Re: AHK: ToolTip при наведении на контрол

OnMessage(0x200, "WM_MOUSEMOVE") 
 
Gui, Add, Text, vText1 +HwndText1,          Первый текст
Gui, Add, Text, vText2 +HwndText2 disabled, Второй текст
Gui, Add, Text, vText3 +HwndText3,          Третий текст
Gui, Add, Text, vText4 +HwndText4 disabled, Четвёртый текст

Help_Text := {(Text1): "Подсказка для Text1", (Text2): "Подсказка для Text2"}
Help_Text[Text3] := "Подсказка для Text3"
Help_Text[Text4] := "Подсказка для Text4"

Gui, Show, h100 w100




WM_MOUSEMOVE()
{
global Help_Text
MouseGetPos, , , , OutputVarControl, 2 ; 1|2|3
ToolTip % Help_Text[OutputVarControl]
}