Menuitem und tooltip
Menuitem und tooltip
Hallo,
Ich möchte bei einem MouseOver über das Menuitem ein Tooltip mit zusätzlichen info's anzeigen.
wie geht das ?
Danke!
jpd
Ich möchte bei einem MouseOver über das Menuitem ein Tooltip mit zusätzlichen info's anzeigen.
wie geht das ?
Danke!
jpd
- Tafkadasom2k5
- Beiträge: 1578
- Registriert: 13.08.2005 14:31
- Kontaktdaten:
Im VisualDesigner kann man, wenn man ein Gadget einfügt, auch einen Tooltip als 'Sprechblase' einbauen.
Sofern ich mich richtig erinnere, ist das in einer kleinen Opion irgendwo in einer Registerkarte versteckt...
Gr33tz
Tafkadasom2k5
Sofern ich mich richtig erinnere, ist das in einer kleinen Opion irgendwo in einer Registerkarte versteckt...
Gr33tz
Tafkadasom2k5
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Hallo Tafkadasom2k5,
habe das über visual designer versucht,
leider sind die option extra bei menu grau hinterlegt...
also es ist so nicht möglich beim menu oder menuitem ein tooltip hizuzufügen.
Ich gehe davon aus das solch eine möglichkeit nur über api zu bewältigen ist, aber wie??
Danke für dein tip.
jpd
habe das über visual designer versucht,
leider sind die option extra bei menu grau hinterlegt...
also es ist so nicht möglich beim menu oder menuitem ein tooltip hizuzufügen.
Ich gehe davon aus das solch eine möglichkeit nur über api zu bewältigen ist, aber wie??
Danke für dein tip.
jpd
Hallo,
habe mir hier und da ein paar sachen angeguckt!
ich denke das müsste der richtige weg sein,
aber da stimmt warcheinlich nicht die übergabe des handle
normalerweise wird gadget(nr) bei der procedure tootip weitergegeben
ich übergebe menuid(nr).
wer kann mir weiterhelfen?
Danke
jpd
habe mir hier und da ein paar sachen angeguckt!
ich denke das müsste der richtige weg sein,
aber da stimmt warcheinlich nicht die übergabe des handle
normalerweise wird gadget(nr) bei der procedure tootip weitergegeben
ich übergebe menuid(nr).
wer kann mir weiterhelfen?
Danke
jpd
Code: Alles auswählen
; German forum: http://robsite.de/php/pureboard/viewtopic.php?t=2658&highlight=
; Author: Andreas (improved code of cnesm)
; Date: 26. October 2003
#menu_1=1
#button_1=2
Declare ToolTip(Handle,Text.s)
Procedure wcb(wnd, msg, wParam, lParam)
If msg = #WM_MENUSELECT
lw=wParam & $FFFF ;loword: menupunkt-nummer
Debug "menupunkt " + Str(lw) + " mouseselect"
menunr=lw
hw=wParam >> 16 & $8000 ;highword: bit für flag "mouseselect" filtern
If hw=#MF_MOUSESELECT
GetCursorPos_(pos.point)
Debug pos\x
Debug pos\y
menuText$ = Space(255)
GetMenuString_(#menu_1, lw, @menuText$, Len(menuText$), #MF_BYPOSITION)
Debug menuText$
ToolTip(MenuID(#menu_1),"Hallo!!!")
EndIf
EndIf
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
Procedure ToolTip(Handle,Text.s)
ObjektBeschreibung=CreateWindowEx_(#WS_EX_TOPMOST,"ToolTips_Class32","",#WS_POPUP | #TTS_NOPREFIX,0,0,0,0,WindowID(0),0,GetModuleHandle_(0),0)
Debug "ObjektBeschreibung: "+Str(ObjektBeschreibung)
SendMessage_(ObjektBeschreibung,#TTM_SETDELAYTIME,#TTDT_INITIAL,100)
SendMessage_(ObjektBeschreibung,$413,RGB(255,255,255),0)
SendMessage_(ObjektBeschreibung,$414,RGB(0,0,0),0)
SendMessage_(ObjektBeschreibung,#WM_SETFONT,LoadFont(0,"Arial",54),#True)
Tool.TOOLINFO
Tool\cbSize=SizeOf(TOOLINFO)
Tool\uFlags=#TTF_SUBCLASS|#TTF_IDISHWND
Tool\hwnd=WindowID(0)
Tool\uID=Handle
Tool\hInst=GetModuleHandle_(0)
Tool\lpszText=@Text
SendMessage_(ObjektBeschreibung,#TTM_ADDTOOL,0,@Tool)
EndProcedure
If OpenWindow(0,0,0,222,200,"MenuTooltip",#PB_Window_SystemMenu|#PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
test=CreateMenu(#menu_1, WindowID(0)) ; hier beginnt das Erstellen des Popup-Menüs...
Debug test
Debug MenuID(#menu_1)
MenuTitle("Programme")
MenuItem(1,"test1")
MenuItem(2,"test2")
EndIf
SetWindowCallback(@wcb())
Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow
Hallo PBZecke,
Danke für den Hinweis,
hier ein link zu eine nette lösung für tooltip in menu geschrieben in VB:
eine Klasse zum Anzeigen von Tooltips im Standard VB-Menu, mehrzeilig, beliebig farbig, optional StandardIcons etc, gelöst über Subclassing.
http://www.activevb.de/cgi-bin/upload/s ... xt=tooltip
ich kenne mich aber mit "classen" überhaupt nicht aus.
----
jpd
Danke für den Hinweis,
hier ein link zu eine nette lösung für tooltip in menu geschrieben in VB:
eine Klasse zum Anzeigen von Tooltips im Standard VB-Menu, mehrzeilig, beliebig farbig, optional StandardIcons etc, gelöst über Subclassing.
http://www.activevb.de/cgi-bin/upload/s ... xt=tooltip
ich kenne mich aber mit "classen" überhaupt nicht aus.
----
jpd
Ich habe mir das mal angeschaut. Habe zwar kaum Erfahrung mit VB, aber in
diesem Beispiel wird der Hilfetext auch nur in der Statusleiste angzeigt. Also
ein Tooltip in einem aufpoppendem Fenster gibt es auch da nicht.
Und das Anzeigen der Hints in einer Statusleiste kann auch der von Dir oben
gepostete code. Braucht nur etwas geändert werden. Ist im Übrigen auch die
gängige Art Hints von Menüs anzuzeigen.
diesem Beispiel wird der Hilfetext auch nur in der Statusleiste angzeigt. Also
ein Tooltip in einem aufpoppendem Fenster gibt es auch da nicht.
Und das Anzeigen der Hints in einer Statusleiste kann auch der von Dir oben
gepostete code. Braucht nur etwas geändert werden. Ist im Übrigen auch die
gängige Art Hints von Menüs anzuzeigen.
Nein, ich habe die Suche nicht benutzt, und deshalb auch nichts dazu gefunden... 

Hi,
vielleicht könnte das so funktionieren!
....
jpd
vielleicht könnte das so funktionieren!
....
jpd
Code: Alles auswählen
Enumeration
#menu_1
#button_1
#About_Window
EndEnumeration
Global pos.point ,thr_win.l
Procedure tooltip_win(x.l)
;Debug "hallo"
Debug "x: "+Str(pos\x)
Debug "y: "+Str(pos\y)
If OpenWindow(#About_Window,0,0,0,0,"Tooltip", #PB_Window_BorderLess|#PB_Window_ScreenCentered | #PB_Window_WindowCentered ) And CreateGadgetList(WindowID(#About_Window))
ResizeWindow(#About_Window,pos\x,pos\y,80,20)
SetWindowColor(#About_Window,#Red)
SetWindowPos_(WindowID(#About_Window),#HWND_TOPMOST,0,0,0,0,#SWP_SHOWWINDOW|#SWP_NOMOVE|#SWP_NOSIZE)
EndIf
Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow
EndProcedure
; German forum: http://robsite.de/php/pureboard/viewtopic.php?t=2658&highlight=
; Author: Andreas (improved code of cnesm)
; Date: 26. October 2003
Declare ToolTip(Handle,Text.s)
Procedure wcb(wnd, msg, wParam, lParam)
If msg = #WM_MENUSELECT
GetCursorPos_(pos.point)
Debug pos\x
Debug pos\y
lw=wParam & $FFFF ;loword: menupunkt-nummer
Debug "menupunkt " + Str(lw) + " mouseselect"
menunr=lw
;Debug lw
If lw > 0
; Debug lw
If IsThread(thr_win)=1
Debug "kill"
KillThread(thr_win)
EndIf
thr_win=CreateThread(@tooltip_win(),pos\x+90 )
EndIf
hw=wParam >> 16 & $8000 ;highword: bit für flag "mouseselect" filtern
If hw=#MF_MOUSESELECT
GetCursorPos_(pos.point)
Debug pos\x
Debug pos\y
menuText$ = Space(255)
GetMenuString_(#menu_1, lw, @menuText$, Len(menuText$), #MF_BYPOSITION)
Debug menuText$
;tooltip_win(pos\x+90 ,pos\y )
;ToolTip(MenuID(#menu_1),"Hallo!!!")
EndIf
EndIf
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
Procedure ToolTip(Handle,Text.s)
ObjektBeschreibung=CreateWindowEx_(#WS_EX_TOPMOST,"ToolTips_Class32","",#WS_POPUP | #TTS_NOPREFIX,0,0,0,0,WindowID(0),0,GetModuleHandle_(0),0)
Debug "ObjektBeschreibung: "+Str(ObjektBeschreibung)
SendMessage_(ObjektBeschreibung,#TTM_SETDELAYTIME,#TTDT_INITIAL,100)
SendMessage_(ObjektBeschreibung,$413,RGB(255,255,255),0)
SendMessage_(ObjektBeschreibung,$414,RGB(0,0,0),0)
SendMessage_(ObjektBeschreibung,#WM_SETFONT,LoadFont(0,"Arial",54),#True)
Tool.TOOLINFO
Tool\cbSize=SizeOf(TOOLINFO)
Tool\uFlags=#TTF_SUBCLASS|#TTF_IDISHWND
Tool\hwnd=WindowID(0)
Tool\uID=Handle
Tool\hInst=GetModuleHandle_(0)
Tool\lpszText=@Text
SendMessage_(ObjektBeschreibung,#TTM_ADDTOOL,0,@Tool)
EndProcedure
If OpenWindow(0,0,0,222,200,"MenuTooltip",#PB_Window_SystemMenu|#PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
test=CreateMenu(#menu_1, WindowID(0)) ; hier beginnt das Erstellen des Popup-Menüs...
Debug test
Debug MenuID(#menu_1)
MenuTitle("Programme")
MenuItem(1,"test1")
MenuItem(2,"test2")
EndIf
SetWindowCallback(@wcb())
Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow