[VB]Tootips_class32

Pagina: 1
Acties:

  • doemaarwat
  • Registratie: Mei 2000
  • Laatst online: 14-12-2022

doemaarwat

of zoiets dergelijks...

Topicstarter
Ik heb een beetje een raar probleem. In VB maak ik gebruik van een aantal API calls om een balloon tooltip te kunnen laten zien. Ik wil alleen de tijd dat deze tooltip zichtbaar is in kunnen stellen. Volgens veel voorbeelden op het net is het makkelijk te doen. Alleen op mijn machine verdwijnt hij steeds na 5 seconden (terwijl de normale tooltip property blijft staan). Op een computer van mijn collega (ook Windows 2000) blijft hij gewoon staan en gaat hij niet eens weg na de ingestelde tijd. Wat is hier aan de hand? Ik heb deze tooltip nodig om multi-line tooltips te kunnen laten zien. Iemand een idee? Of zelfs een ander werkend idee?

Onderstaande code is een gedeelte uit mijn code.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Public Sub AssignToolTip(ByRef hTarget As Object, ByRef sMessage As String)
Dim TipWindow As Long
Dim ti As TOOLINFO
Dim uid As Long
Dim RECT As RECT
Dim lTime As Long

  uid = 0
  TipWindow = CreateWindowEx(0&, TOOLTIPS_CLASSA, "", _
     TTS_ALWAYSTIP Or TTS_BALLOON, CW_USEDEFAULT, CW_USEDEFAULT, _
     CW_USEDEFAULT, CW_USEDEFAULT, hTarget.hwnd, 0&, App.hInstance, 0&)
  
  SetWindowPos TipWindow, HWND_TOPMOST, 0, 0, 0, 0, _
     SWP_NOMOVE Or SWP_NOSIZE Or SWP_NOACTIVATE
  GetClientRect hTarget.hwnd, RECT
  
  'Fill the TOOLINFO structure with info about
  'the target tool
  With ti
    .cbSize = Len(ti)
    .uFlags = TTF_SUBCLASS
    .hwnd = hTarget.hwnd
    .hinst = App.hInstance
    .uid = uid
    .RECT = RECT
    .lpszText = sMessage
  End With
  
  SendMessage TipWindow, TTM_ADDTOOLA, 0, ti
  SendMessage TipWindow, TTM_SETMAXTIPWIDTH, 0, 80
  SendMessage TipWindow, TTM_SETTIPBKCOLOR, mBackColor, 0
  SendMessage TipWindow, TTM_SETTIPTEXTCOLOR, mForeColor, 0
  lTime = 10000
  SendMessage TipWindow, TTM_SETDELAYTIME, TTDT_AUTOPOP, lTime
End Sub

Als je ermee ophoudt wat er in het hier en nu is te vergelijken met wat je zou willen dat er was, kun je beginnen met genieten van wat er is. - Cheri Huber


  • glashio
  • Registratie: Oktober 2001
  • Laatst online: 03-09 21:13

glashio

C64 > AMIGA > PC

klik

Call SendMessageT(mnlgHwndTT, TTM_SETDELAYTIME, (dwType And ttDelayMask), ByVal dwMilliSecs) ' no rtn val


Succes :7

> Google Certified Searcher
> Make users so committed to Google that it would be painful to leave
> C64 Gospel
> [SjoQ] = SjoQing


  • doemaarwat
  • Registratie: Mei 2000
  • Laatst online: 14-12-2022

doemaarwat

of zoiets dergelijks...

Topicstarter
Op dinsdag 25 juni 2002 22:56 schreef glashio het volgende:
klik

Call SendMessageT(mnlgHwndTT, TTM_SETDELAYTIME, (dwType And ttDelayMask), ByVal dwMilliSecs) ' no rtn val


Succes :7
Thx, maar zoals je ziet heb ik in mijn code deze regel reeds staan:
code:
1
SendMessage TipWindow, TTM_SETDELAYTIME, TTDT_AUTOPOP, lTime

Het enige verschil is dat ik niet expliciet ByVal voor de lTime variabele heb staan. Ik ben gisterenavond een beetje aan het experimenteren geweest en heb nog een andere voorbeeld class gedownload. Hierin zat een voorbeeld waarbij de popup zou moeten blijven staan. Helaas, ook die verdween na 5 sec.

Het rare is alleen als ik de delay time op 95.000 ms zet blijft hij een seconde of 30 staan (is al veel beter dan die 5sec.). Maar als ik de delay time op 100.000 ms zet verdwijnt hij gewoon weer na 5 sec :?

Als je ermee ophoudt wat er in het hier en nu is te vergelijken met wat je zou willen dat er was, kun je beginnen met genieten van wat er is. - Cheri Huber


  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 28-08 17:06

Sponge

Serious Game Developer

Misschien is er een maximum ingesteld, om eventueel misbruik te voorkomen..?