BalloonToolTip Doppelt

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Lukaso
Beiträge: 720
Registriert: 08.09.2004 18:51
Wohnort: Oberkirch
Kontaktdaten:

BalloonToolTip Doppelt

Beitrag von Lukaso »

Hallo,

ich benutze ein BalloonToolTip für meinen Player wo der Benutzer für Informationen zum Lied einfach nen MouseOver durchfürhren muss.

Ich Lösche immer den alten ToolTip bevor ich einen neuen setze. Dies mache ich beim Laden des Liedes.

Code: Alles auswählen

Procedure BalloonTipWindow(windowID, balloonText$, balloonTitle$, balloonIcon)
  hBalloonTip = CreateWindowEx_(0, "ToolTips_Class32", "", #WS_POPUP | #TTS_NOPREFIX, 0, 0, 0, 0, 0, 0, GetModuleHandle_(0), 0) 
  SendMessage_(hBalloonTip, #TTM_SETTIPTEXTCOLOR, RGB(0, 0, 0), 0)
  SendMessage_(hBalloonTip, #TTM_SETTIPBKCOLOR, RGB(150, 150, 150), 0)
  myBalloon.TOOLINFO\cbSize = SizeOf(TOOLINFO) 
  myBalloon\uFlags = #TTF_IDISHWND | #TTF_SUBCLASS
  myBalloon\hwnd = WindowID(windowID)
  myBalloon\uId = WindowID(windowID)
  myBalloon\lpszText = @balloonText$
  SendMessage_(hBalloonTip, #TTM_ADDTOOL, 0, myBalloon) 
  SendMessage_(hBalloonTip, #TTM_SETDELAYTIME, #TTDT_AUTOPOP, 10000) 
  If balloonTitle$ > ""
    SendMessage_(hBalloonTip, #TTM_SETTITLE, balloonIcon, @balloonTitle$) 
  EndIf 
EndProcedure 
Den Code zum löschen habe ich mal von Falko bekommen :allright:

Code: Alles auswählen

Procedure DelBalloonTipWindow(windowID)
  Balloon.TOOLINFO\cbSize = SizeOf(TOOLINFO) 
  Balloon\hwnd = WindowID(windowID) 
  Balloon\uId = WindowID(windowID) 
  SendMessage_(hBalloonTip, #TTM_DELTOOL, 0, Balloon) 
EndProcedure 
Mein Problem ist allerdings, dass manchmal das ToolTip nicht richtig gelöscht wird und ich dann 2 angezeigt bekomme. Ich habe es auch probiert DelBalloonTipWindow() mehrmals aufzurugen, bringt aber nix.

Kann mir jemand helfen?

Danke :allright:

Lukaso
Nextgen Guild Wars Fanseite: Guild Wars Tactics (Pseudo-Admin + Developer)
"Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht." - Unbekannter Autor
Benutzeravatar
Lukaso
Beiträge: 720
Registriert: 08.09.2004 18:51
Wohnort: Oberkirch
Kontaktdaten:

Beitrag von Lukaso »

Habs jetzt hinbekommen.

Code: Alles auswählen

Procedure UpdateBalloonTipWindow(windowID, balloonText$)
  Balloon.TOOLINFO\cbSize = SizeOf(TOOLINFO)
  Balloon\hwnd = WindowID(windowID) 
  Balloon\uId = WindowID(windowID)
  Balloon\lpszText = @balloonText$
  SendMessage_(hBalloonTip, #TTM_UPDATETIPTEXT, 0, Balloon)
EndProcedure 
MFG Lukaso
Nextgen Guild Wars Fanseite: Guild Wars Tactics (Pseudo-Admin + Developer)
"Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht." - Unbekannter Autor
Gesperrt