[B+] ToolTips für Canvas Elemente
Übersicht

![]() |
EPSBetreff: [B+] ToolTips für Canvas Elemente |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hier meine Lösung um ToolTips für Canvas Elemente zu erzeugen. Nicht gerade die eleganteste Lösung, aber eine Lösung.
Code: [AUSKLAPPEN] ;==============================================================================================================
; ToolTip für Canvas Elemente (by East-Power-Soft) für Blitz+. ; ; Benötigt die WinAPI Funktion SetWindowPos. Das muß in die user32.decls: ; ; .lib "user32.dll" ; api_SetWindowPos% (hwnd%, hWndInsertAfter%, x%, y%, cx%, cy%, wFlags%) : "SetWindowPos" ; ;============================================================================================================== Global tooltip ;--> Handle des ToolTip Fensters Global tooltipcnv ;--> Canvas des ToolTip Global showtip ;--> Flag für ToolTip Global clr_tooltip_back = $FFCF91 ;--> Tooltip Hintergrundfarbe Global clr_tooltip_text = $000000 ;--> Tooltip Textfarbe Global clr_tooltip_border = $816A47 ;--> Tooltip Rahmenfarbe Global tooltipfont = LoadFont("Tahoma.ttf",13,1) ;--> Schriftart des ToolTip Global tooltiptimer = CreateTimer(1) ;--> Ein Fenster Global hWnd = CreateWindow("ToolTips",300,200,500,150,Desktop()) ;--> 2 Canvas Elemente zur Demonstration Global cnv1 = CreateCanvas(2,20,50,50,hWnd) Global cnv2 = CreateCanvas(100,20,50,50,hWnd) ;--> Das ToolTipfenster (erzeugen, verstecken, 'AlwaysOnTop' setzen und Fokus zurück auf Fenster) tooltip = CreateWindow("",0,0,10,10,hWnd,0): HideGadget tooltip api_SetWindowPos(QueryObject(tooltip,1),-1,0,0,0,0,$3) tooltipcnv = CreateCanvas(0,0,1,1,tooltip) ActivateGadget hWnd ;--> Los gehts Repeat event = WaitEvent() If event Then Select event Case $803: End ;--> MouseEnter, Wenn Maus über einem Canvas, aktiviere ToolTip Case $205 Select EventSource() Case cnv1: ShowToolTip("Dieser Tooltip ist nur für Canvas Elemente.") Case cnv2: ShowToolTip("nicht die Eleganteste Lösung, aber eine Lösung.") End Select ;--> MouseLeave, beim verlassen eines Canvas wird der ToolTip deaktiviert Case $206 HideToolTip() ;--> TimerTick, wenn ToolTip länger wie 4 Sek. angezeigt, deaktiviere ihn. Case $4001 If showtip Then If TimerTicks(tooltiptimer) > 4 Then HideToolTip() End Select End If Forever Function ShowToolTip(tip$="") ;============================================================================================================== ; Tooltip aktivieren ;============================================================================================================== If Not(showtip) Then showtip = True SetBuffer CanvasBuffer(tooltipcnv) SetFont tooltipfont Local width = StringWidth(tip$) + 10 Local height = FontHeight() + 2 SetGadgetShape tooltip,MouseX()+15,MouseY()-height-2,width,height If tooltipcnv Then FreeGadget tooltipcnv tooltipcnv = CreateCanvas(0,0,width,height,tooltip) SetBuffer CanvasBuffer(tooltipcnv) Color 0,0,clr_tooltip_back Rect 0,0,width,height,1 Color 0,0,clr_tooltip_border Rect 0,0,width,height,0 SetFont tooltipfont Color 0,0,clr_tooltip_text Text width/2,height/2,tip$,1,1 FlipCanvas tooltipcnv ShowGadget tooltip ActivateGadget hWnd ResetTimer tooltiptimer End If End Function Function HideToolTip() ;============================================================================================================== ; ToolTip deaktivieren ;============================================================================================================== HideGadget tooltip showtip = False End Function |
||
mGUI - Graphical User Interface für Blitz3D...Informationen gibt es hier
Man kann sich öfter als zweimal im Leben halb tot lachen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group