Изменение текста у ToolTip

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Изменение текста у ToolTip

Сообщение Kovu » 09.02.2006 (Чт) 21:00

Создаю тултип, и мне надо переиодически менять его текст .
Код: Выделить всё

Public Sub ModifyTip(ByVal NewText As String)
Dim modTip As TOOLINFO

With modTip
.hwnd = numtt(0)
GetClientRect numtt(0), .cRect
.lpszText = StrPtr(StrConv(NewText & vbCrLf & vbNullChar, vbFromUnicode)) 'App.hInstance
.uFlags = TTF_SUBCLASS Or TTF_IDISHWND
.uId = numtt(0)
.hinst = App.hInstance
.cbSize = Len(modTip)
End With
Call SendMessageLong1(numtt(0), TTM_UPDATETIPTEXT, &H0, VarPtr(modTip))
'Call SendMessage(numtt(0), TTM_ADDTOOL, &H0, modTip)
'Call SendMessage(numtt(0), TTM_SETTITLE, &H0, ByVal NewText)
End Sub

Пытался сделать и без указателей(и без StrPtr , и без VarPtr), но тем не менее текст подсказки не меняется, хотя TTM_SETTITLE спокойно меняет заголовок подсказки :cry: :roll:
Как же все-таки надо послать сообщение TTM_UPDATETIPTEXT чтоб текст тултипа всё-же поменялся?
Если всё делать своими ручками, они скоро отвалятся !

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 10.02.2006 (Пт) 3:18

lpszText = NewText
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 10.02.2006 (Пт) 12:32

GSerg
Всё равно не работает как ни странно
Если всё делать своими ручками, они скоро отвалятся !

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 10.02.2006 (Пт) 18:42

Люди, ну как такое может быть, что тандартное сообщение не работает? :cry:
Если всё делать своими ручками, они скоро отвалятся !

moppuk
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 115
Зарегистрирован: 31.01.2006 (Вт) 23:03

Сообщение moppuk » 10.02.2006 (Пт) 20:06

Можно через NotifyIconData например BallonTip выводить.
А можно вообще любой формы и содержания через класс HintWindow. И работай с ним как с любым другим чужим окном. С помощью SetWindowRgn придаешь любую форму, с помощью canvas пишешь и рисуешь что угодно и т.д.
С уважением Морозов Николай

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 10.02.2006 (Пт) 20:09

moppuk
У меня тултип не на иконке в трее =)
А создавать окно своими руками...зачем, если есть удобный класс в comctls32.dll ?
Если всё делать своими ручками, они скоро отвалятся !

moppuk
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 115
Зарегистрирован: 31.01.2006 (Вт) 23:03

Сообщение moppuk » 10.02.2006 (Пт) 20:15

Это как я понимаю всплывающее окошко, как в Opere при завершении загрузки?
С уважением Морозов Николай

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 10.02.2006 (Пт) 20:23

Никогда не видел как там в опере =)
Вообще тултип это всплывающая подсказка. У меня она сделана вручную.
P.S.
Ответьте хоть кто-нибудь как заставить это сообщение работать :roll:
Если всё делать своими ручками, они скоро отвалятся !

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 10.02.2006 (Пт) 23:07

Уважаемые модераторы, если вы удаляете сообщения которые могут с легкостью быть найдены в поиске, будьте так любезны уделять хоть немного своего драгоценного времени для ответа на те вопросы, которых в нем нет (как пример мой ).
Если всё делать своими ручками, они скоро отвалятся !

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 12.02.2006 (Вс) 0:54

В таком виде работает:
Код: Выделить всё
Public Sub ModifyTip(ByVal NewText As String)
Dim modTip As TOOLINFO
With modTip
.hwnd = Form1.Command1.hwnd
.uId = Form1.Command1.hwnd
.lpszText = NewText
.cbSize = Len(modTip)
End With
Call SendMessage(numtt(0), TTM_UPDATETIPTEXT, &H0, modTip)
'Call SendMessage(numtt(0), TTM_ADDTOOL, &H0, modTip)
'Call SendMessage(numtt(0), TTM_SETTITLE, &H0, ByVal NewText)
End Sub

Здесь Form1.Command1.hwnd - тот хендл, который передавался первым параметром в SetTooltipProps.
Изображение

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 12.02.2006 (Вс) 11:04

tyomitch
Спасибо огромное :)
Если всё делать своими ручками, они скоро отвалятся !


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot, Yandex-бот и гости: 86

    TopList