1

Тема: AHK: Ограничение размеров tooltip

Здравствуйте. Можно ли как-то ограничить размеры ToolTip, например, по ширине? Чтобы длинный текст писался в столбик, а не одной большой строчкой.

2

Re: AHK: Ограничение размеров tooltip

Есть такой символ: `n, попробуйте использовать его.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: Ограничение размеров tooltip

teadrinker, текст в ToolTip идет через множество переменных, и количество слов в них заранее не известно. Поэтому 'n проходит мимо. Хотя может и можно как-то реализовать, но идей нет.

4

Re: AHK: Ограничение размеров tooltip

Ну, по идее ничего не мешает разбивать все тексты на куски по десть (или сколько надо) слов и встраивать знак переноса в конце каждой группы.

5

Re: AHK: Ограничение размеров tooltip

Ну, если по-умному, то так:

#Persistent
Hook := new WindowsHook(WH_CALLWNDPROC := 4, "CallWndProc", maxWidth := 200, false)
ToolTip % "Здравствуйте. Можно ли как-то ограничить размеры ToolTip, например, по ширине? Чтобы длинный текст писался в столбик, а не одной большой строчкой."
Return

CallWndProc(nCode, wParam, lParam) {
   static TTM_TRACKPOSITION := 0x0412, TTM_SETMAXTIPWIDTH := 0x0418
   msg := NumGet(lParam + A_PtrSize*2, "UInt")
   hwnd := NumGet(lParam + A_PtrSize*3)
   if (msg = TTM_TRACKPOSITION)
      DllCall("SendMessage", "Ptr", hwnd, "UInt", TTM_SETMAXTIPWIDTH, "Int", 0, "Int", A_EventInfo)
   DllCall("CallNextHookEx", "Ptr", 0, "int", nCode, "Ptr", wParam, "Ptr", lParam, "Ptr")
}

class WindowsHook {
   __New(type, callback, eventInfo := "", isGlobal := true) {
      this.pCallback := RegisterCallback(callback, "Fast", 3, eventInfo)
      this.hHook := DllCall("SetWindowsHookEx", "Int", type, "Ptr", this.pCallback
                                              , "Ptr", !isGlobal ? 0 : DllCall("GetModuleHandle", "UInt", 0, "Ptr")
                                              , "UInt", isGlobal ? 0 : DllCall("GetCurrentThreadId"), "Ptr")
   }
   __Delete() {
      DllCall("UnhookWindowsHookEx", "Ptr", this.hHook)
      DllCall("GlobalFree", "Ptr", this.pCallback, "Ptr")
   }
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

6

Re: AHK: Ограничение размеров tooltip

teadrinker, огромное спасибо.