Sunaj Posted December 23, 2006 Share Posted December 23, 2006 (edited) Yep, got heavy (for me anyways!) issue with getting the timing right on ToolTips for context menu - I modified the very clever code by eltorro ("ToolTip and Statusbar text change when mouse cursor over a dropdown menu") to run with GUIOnEventMode on and added the context menu to appear when pressing right mouse button in the GUI. So.. If someone can help me get the below code to behave so that:1) The Tooltips only appear automatically after say 1.5 seconds of letting the mouse pointer hover above a context menu entry2) The Tooltips disappear automatically when the mouse pointer is movedIt would be, seriously, superb! Update 12/30/06: See this post for a complete and functional solution to the thread - only possible due to brilliant code provided by eltorro. Update 12/28/06: Unfortunately, using Auto3Lib for the task proved to be a unworkable (since using tooltips on context menus is not a native windows options) therefore my two main objectives in this thread has NOT been achieved - anyways, have sent message to the original author of the GUIRegisterMsg'r code for hooking the context menu (eltorro) & is hoping for other solutions to show up!expandcollapse popup#Include <GuiConstants.au3> #include <Array.au3> Opt("GUIOnEventMode", 1) $USE_TOOLTIP = TRUE Dim $a_CtrlIDArray[1] Dim $a_CtrlMsgArray[1] Dim $ControlID $Global_I = 0 Dim $__ControlID $HoverActive = 0 $Temp_Found = 0 $defaultstatus = "Ready" Dim $status Dim $Timer Const $WM_MENUSELECT = 0x011F GUIRegisterMsg($WM_MENUSELECT,"func_MouseOverMenu") $Form1 = GUICreate('TITLE', 400, 285) $filemenu = GUICtrlCreateMenu("&File") func_AddCtrl($filemenu,"FileMenu") $file1 = GUICtrlCreateMenuitem("Label 1", $filemenu) func_AddCtrl($file1,"This is Label1") $file2 = GUICtrlCreateMenuitem("Label 2", $filemenu) func_AddCtrl($file2,"Label 2 at Your Service") $file3 = GUICtrlCreateMenuitem("Label3", $filemenu) func_AddCtrl($file3,"Pleased to meet you from Label 3") $file4 = GUICtrlCreateMenuitem("Label 4", $filemenu) func_AddCtrl($file4,"Well, you get the picture, Label 4") GUISetOnEvent($GUI_EVENT_CLOSE, "func_Exit") $contextmenu = GUICtrlCreateContextMenu () $fileitem = GUICtrlCreateMenuitem ("Open", $contextmenu) func_AddCtrl($fileitem,"Works in contaxt menuitem 'Open' as well!") $saveitem = GUICtrlCreateMenuitem ("Save", $contextmenu) func_AddCtrl($saveitem,"Works in contaxt menuitem 'Save' as well!") GUICtrlCreateMenuitem ("", $contextmenu) ; separator $infoitem = GUICtrlCreateMenuitem ("Info", $contextmenu) func_AddCtrl($infoitem,"Works in contaxt menuitem 'Info' as well!") GUISetState() While 1 Sleep(333) WEnd Func func_MouseOverMenu($hWndGUI, $MsgID, $WParam, $LParam) Local $id = BitAnd($WParam, 0xFFFF) For $x= 0 To UBound($a_CtrlIDArray) -1 If $id = ($a_CtrlIDArray[$x]) Then If $USE_TOOLTIP Then ToolTip($a_CtrlMsgArray[$x]) EndIf ExitLoop EndIf Next EndFunc Func func_AddCtrl($ControlID,$ControlMsg) _ArrayAdd($a_CtrlIDArray,$ControlID) _ArrayAdd($a_CtrlMsgArray,$ControlMsg) EndFunc Func func_Exit() Exit EndFunc Edited January 3, 2007 by Sunaj [list=1][*]Generic way to detect full path to default browser, List/ListView Events Using GuiRegisterMsg (detect doubleclick and much more)[*]Using dllcall for full control over fileopendialog, Make DirMove act somewhat normally (by circumventing it...)[*]Avoid problems with "&" (chr(38)) in code, Change desktop maximized area/workspace (fx to make deskbar type app)[*]Change focus behavior when buttons are clicked to work closer to 'standard windows' app[*](Context) Menus With Timed Tooltips, Fast Loops & Operators in AU3[*]Clipboard UDF, A clipboard change notification udf[/list] Link to comment Share on other sites More sharing options...
Sunaj Posted December 23, 2006 Author Share Posted December 23, 2006 Hi Googemyster; yea.. I think you're on to something here but so far it causes the tooltip to shutdown immediately before I can read it. Look at mouseover function at bottom expandcollapse popup#Include <GuiConstants.au3> #include <Array.au3> Opt("GUIOnEventMode", 1) $USE_TOOLTIP = TRUE Dim $a_CtrlIDArray[1] Dim $a_CtrlMsgArray[1] Dim $ControlID $Global_I = 0 Dim $__ControlID $HoverActive = 0 $Temp_Found = 0 $defaultstatus = "Ready" Dim $status Dim $Timer Const $WM_MENUSELECT = 0x011F GUIRegisterMsg($WM_MENUSELECT,"func_MouseOverMenu") $Form1 = GUICreate('TITLE', 400, 285) $filemenu = GUICtrlCreateMenu("&File") func_AddCtrl($filemenu,"FileMenu") $file1 = GUICtrlCreateMenuitem("Label 1", $filemenu) func_AddCtrl($file1,"This is Label1") $file2 = GUICtrlCreateMenuitem("Label 2", $filemenu) func_AddCtrl($file2,"Label 2 at Your Service") $file3 = GUICtrlCreateMenuitem("Label3", $filemenu) func_AddCtrl($file3,"Pleased to meet you from Label 3") $file4 = GUICtrlCreateMenuitem("Label 4", $filemenu) func_AddCtrl($file4,"Well, you get the picture, Label 4") GUISetOnEvent($GUI_EVENT_CLOSE, "func_Exit") $contextmenu = GUICtrlCreateContextMenu () $fileitem = GUICtrlCreateMenuitem ("Open", $contextmenu) func_AddCtrl($fileitem,"Works in contaxt menuitem 'Open' as well!") $saveitem = GUICtrlCreateMenuitem ("Save", $contextmenu) func_AddCtrl($saveitem,"Works in contaxt menuitem 'Save' as well!") GUICtrlCreateMenuitem ("", $contextmenu) ; separator $infoitem = GUICtrlCreateMenuitem ("Info", $contextmenu) func_AddCtrl($infoitem,"Works in contaxt menuitem 'Info' as well!") GUISetState() While 1 Sleep(333) WEnd Func func_MouseOverMenu($hWndGUI, $MsgID, $WParam, $LParam) Local $id = BitAnd($WParam, 0xFFFF) For $x= 0 To UBound($a_CtrlIDArray) -1 If $id = ($a_CtrlIDArray[$x]) Then If $USE_TOOLTIP Then ToolTip($a_CtrlMsgArray[$x]) EndIf ;;Added This, Give er a try $pos = MouseGetPos() If $pos = $pos Then Sleep(2000) Else ToolTip("") EndIf ;;;;;;;;;;;;;;;;;;;; ExitLoop EndIf Next EndFunc Func func_AddCtrl($ControlID,$ControlMsg) _ArrayAdd($a_CtrlIDArray,$ControlID) _ArrayAdd($a_CtrlMsgArray,$ControlMsg) EndFunc Func func_Exit() Exit EndFunc [list=1][*]Generic way to detect full path to default browser, List/ListView Events Using GuiRegisterMsg (detect doubleclick and much more)[*]Using dllcall for full control over fileopendialog, Make DirMove act somewhat normally (by circumventing it...)[*]Avoid problems with "&" (chr(38)) in code, Change desktop maximized area/workspace (fx to make deskbar type app)[*]Change focus behavior when buttons are clicked to work closer to 'standard windows' app[*](Context) Menus With Timed Tooltips, Fast Loops & Operators in AU3[*]Clipboard UDF, A clipboard change notification udf[/list] Link to comment Share on other sites More sharing options...
Sunaj Posted December 23, 2006 Author Share Posted December 23, 2006 I fixed the code to this:$pos = MouseGetPos() If $pos = MouseGetPos() Then ; fix here Sleep(2000) Else Sleep(2000) ; add or remove does not do much diff ToolTip("") EndIf ExitLoopBut this is not working - it produces a bad lagging and also does not take into account if the users moves the mouse during the sleep time - I think that sleep will ultimately have to be used in quite a different way for this to work..!ok add a sleep(2000) in My else statement before the Tooltip("") [list=1][*]Generic way to detect full path to default browser, List/ListView Events Using GuiRegisterMsg (detect doubleclick and much more)[*]Using dllcall for full control over fileopendialog, Make DirMove act somewhat normally (by circumventing it...)[*]Avoid problems with "&" (chr(38)) in code, Change desktop maximized area/workspace (fx to make deskbar type app)[*]Change focus behavior when buttons are clicked to work closer to 'standard windows' app[*](Context) Menus With Timed Tooltips, Fast Loops & Operators in AU3[*]Clipboard UDF, A clipboard change notification udf[/list] Link to comment Share on other sites More sharing options...
Sunaj Posted December 23, 2006 Author Share Posted December 23, 2006 Super - will definately try it out, can you provide a syntax example? At least: ToolTip($a_CtrlMsgArray[$x],default,default,default,default,23453) Does not work (no tooltip showing). this will make the tootip disapper only if they move the mouse off the tootip [list=1][*]Generic way to detect full path to default browser, List/ListView Events Using GuiRegisterMsg (detect doubleclick and much more)[*]Using dllcall for full control over fileopendialog, Make DirMove act somewhat normally (by circumventing it...)[*]Avoid problems with "&" (chr(38)) in code, Change desktop maximized area/workspace (fx to make deskbar type app)[*]Change focus behavior when buttons are clicked to work closer to 'standard windows' app[*](Context) Menus With Timed Tooltips, Fast Loops & Operators in AU3[*]Clipboard UDF, A clipboard change notification udf[/list] Link to comment Share on other sites More sharing options...
Sunaj Posted December 23, 2006 Author Share Posted December 23, 2006 (edited) Hmm, I honestly think that this one will require something like A3LToolTip.au3 (see Auto3Lib) to make it work the way I described in the first post of this thread. Tracked down the "_ToolTip_SetDelayTime" function but cannot get it worked into my code.. Anyways, I'll be off to a bit of xmas chilling & return tomorrow hoping to find a smooth solution posted ! Merry xmas or whatever u people celebrate these days! Edited December 23, 2006 by Sunaj [list=1][*]Generic way to detect full path to default browser, List/ListView Events Using GuiRegisterMsg (detect doubleclick and much more)[*]Using dllcall for full control over fileopendialog, Make DirMove act somewhat normally (by circumventing it...)[*]Avoid problems with "&" (chr(38)) in code, Change desktop maximized area/workspace (fx to make deskbar type app)[*]Change focus behavior when buttons are clicked to work closer to 'standard windows' app[*](Context) Menus With Timed Tooltips, Fast Loops & Operators in AU3[*]Clipboard UDF, A clipboard change notification udf[/list] Link to comment Share on other sites More sharing options...
PaulIA Posted December 23, 2006 Share Posted December 23, 2006 Hmm, I honestly think that this one will require something like A3LToolTip.au3 (see Auto3Lib) to make it work the way I described in the first post of this thread. Tracked down the "_ToolTip_SetDelayTime" function but cannot get it worked into my code.. Anyways, I'll be off to a bit of xmas chilling & return tomorrow hoping to find a smooth solution posted ! Merry xmas or whatever u people celebrate these days!You might want to take a look at the note pad demo in Auto3Lib. It shows how to add a tool tip to a control. The nice thing about it is, once you've attached it to the control, you don't have to do anything else (no message capture, delays, etc.). If you get stuck, post a message in the Auto3Lib thread with some code and I'll see what I can do to help you out. Auto3Lib: A library of over 1200 functions for AutoIt Link to comment Share on other sites More sharing options...
Sunaj Posted December 28, 2006 Author Share Posted December 28, 2006 (edited) Unfortunately, using Auto3Lib for the task proved to be a unworkable (since using tooltips on context menus is not a native windows options) therefore my two main objectives in this thread, to extend the code provided in the first posting with these two features:1) The Tooltips only appear automatically after say 1.5 seconds of letting the mouse pointer hover above a context menu entry2) The Tooltips disappear automatically when the mouse pointer is moved..has NOT been achieved - anyways, have sent message to the original author of the GUIRegisterMsg'r code for hooking the context menu (eltorro) & is hoping for other solutions to show up! Edited December 28, 2006 by Sunaj [list=1][*]Generic way to detect full path to default browser, List/ListView Events Using GuiRegisterMsg (detect doubleclick and much more)[*]Using dllcall for full control over fileopendialog, Make DirMove act somewhat normally (by circumventing it...)[*]Avoid problems with "&" (chr(38)) in code, Change desktop maximized area/workspace (fx to make deskbar type app)[*]Change focus behavior when buttons are clicked to work closer to 'standard windows' app[*](Context) Menus With Timed Tooltips, Fast Loops & Operators in AU3[*]Clipboard UDF, A clipboard change notification udf[/list] Link to comment Share on other sites More sharing options...
Sunaj Posted December 28, 2006 Author Share Posted December 28, 2006 Ah.. found the this: http://msdn.microsoft.com/msdnmag/issues/03/11/CQA/ a microsoft blog entry describing how you can use the $WM_ENTERIDLE (0x0121) message to find out whether the mouse pointer is currently within a context menu or not. Following code is my attempt at using a GUIRegisterMsg($WM_ENTERIDLE,"func_DetectIdle") together with GUIRegisterMsg($WM_MENUSELECT,"func_MouseOverMenu") to make the code work.. Still not working, but its getting closer - if someone with a good grasp on GUIRegisterMsg could step in I think its nailed! --simply put this code should remove the tooltips over the context menu whenever the mouse pointer is moved OFF the context menu!expandcollapse popup#include <GuiConstants.au3> #include <Array.au3> Opt("GUIOnEventMode", 1) ;$USE_TOOLTIP = True Global Const $WM_ENTERIDLE = 0x0121 Global Const $WM_MENUSELECT = 0x011F Global Const $WM_SYSCOMMAND = 0x112 ; works on exit, minimize, questionsmark..etc. GUIRegisterMsg($WM_MENUSELECT,"func_MouseOverMenu") GUIRegisterMsg($WM_ENTERIDLE,"func_DetectIdle") Dim $a_CtrlIDArray[1],$a_CtrlMsgArray[1],$USE_TOOLTIP = TRUE,$WParam,$LParam $hGui_Main = GUICreate('Demo', 400, 285) $hContextmenu = GUICtrlCreateContextMenu () ; do i need to use a Auto3Lib native call here? $hFileitem = GUICtrlCreateMenuitem ("Open", $hContextmenu) func_AddToolTipCtrl($hFileitem,"Works in context menuitem '$hFileitem' as well!") $hSaveitem = GUICtrlCreateMenuitem ("Save", $hContextmenu) func_AddToolTipCtrl($hSaveitem,"Works in context menuitem '$hSaveitem' as well!") $hInfoitem = GUICtrlCreateMenuitem ("Info", $hContextmenu) func_AddToolTipCtrl($hInfoitem,"Works in context menuitem '$hInfoitem' as well!") GUISetOnEvent($GUI_EVENT_CLOSE, "func_Exit") GUISetState() While 1 Sleep(333) WEnd Func func_MouseOverMenu($hWndGUI, $MsgID,$WParam,$LParam) For $i = 0 To UBound($a_CtrlIDArray) - 1 If ($a_CtrlIDArray[$i]) = BitAnd($WParam, 0xFFFF) Then ; see http://tols17.oulu.fi/~vtatila/ohjy/english/ohjy38.html ;ConsoleWrite("$WParam: " & $WParam & @CRLF) ;ConsoleWrite("$LParam: " & $LParam & @CRLF) ;ConsoleWrite("BitAnd($WParam, 0xFFFF): " & BitAnd($WParam, 0xFFFF) & @CRLF) ;ConsoleWrite("$a_CtrlIDArray[$i]: " & $a_CtrlIDArray[$i] & @CRLF) ToolTip($a_CtrlMsgArray[$i]) ExitLoop EndIf Next EndFunc Func func_DetectIdle($hWndGUI, $MsgID,$WParam,$LParam) ; (not working) should be able to detect when the mouse moves off the context menu area, see http://msdn.microsoft.com/msdnmag/issues/03/11/CQA/ $i_temp = $LParam ConsoleWrite(@CRLF & $WParam & " & " & $LParam & " & " & $hWndGUI & " & " & $MsgID) If $LParam = $i_temp Then ; do nothing Else ToolTip("") EndIf EndFunc Func func_AddToolTipCtrl($ControlID,$ControlMsg) _ArrayAdd($a_CtrlIDArray,$ControlID) _ArrayAdd($a_CtrlMsgArray,$ControlMsg) EndFunc Func func_Exit() Exit EndFunc [list=1][*]Generic way to detect full path to default browser, List/ListView Events Using GuiRegisterMsg (detect doubleclick and much more)[*]Using dllcall for full control over fileopendialog, Make DirMove act somewhat normally (by circumventing it...)[*]Avoid problems with "&" (chr(38)) in code, Change desktop maximized area/workspace (fx to make deskbar type app)[*]Change focus behavior when buttons are clicked to work closer to 'standard windows' app[*](Context) Menus With Timed Tooltips, Fast Loops & Operators in AU3[*]Clipboard UDF, A clipboard change notification udf[/list] Link to comment Share on other sites More sharing options...
eltorro Posted December 30, 2006 Share Posted December 30, 2006 This will do what you want. expandcollapse popup;Menu With Timed Tooltips ;Stephen Podhajecki [eltorro] gehossafats@netmdc.com #Include <GuiConstants.au3> #include <Array.au3> Global $USE_TOOLTIP = TRUE Global $DEBUG = True Local $aCtrlArray[1], $aCtrlMsgArray[1], $ControlID, $Global_I = 0, $__ControlID, $HoverActive = 0, $Temp_Found = 0, $szTemp_Array[2] Global $defaultstatus = "Ready" Global $status Global $MenuItemId Global $EVENT Global $TIMERENABLED = False ; Flag set when SetTimer api is called. Global $TIP_TIMER ; Timestamp holder for tooltip visiblilty Global Const $TIP_TIMER_ID = 999 ; Timer id for SetTimer api Global Const $TIPSHOW = 1 ; Event Global Const $TIPVISIBLE = 2 ; Event Global Const $TIPCLOSE = 128 ; Event Global Const $TIP_TTL = 3000 ; how long to show tooltip Global Const $TIP_DELAY = 750 ; how long to wait to show tooltip Global Const $MSG_INTERVAL = 100 ; Interval Windows will use to send ;Window Message Hooks. Global Const $WM_ENTERMENULOOP = 0x0211 Global Const $WM_EXITMENULOOP = 0x0212 Global Const $WM_MENUSELECT = 0x011F Global Const $WM_ENTERIDLE = 0x0121 Global Const $WM_TIMER = 0x0113 GUIRegisterMsg ($WM_ENTERMENULOOP, "MenuTipHandler") GUIRegisterMsg ($WM_MENUSELECT, "MenuTipHandler") GUIRegisterMsg ($WM_EXITMENULOOP, "MenuTipHandler") GuiRegisterMsg ($WM_TIMER, "TimerCallBack") $Form1 = GUICreate('Menu ToolTips', 400, 285) $filemenu = GUICtrlCreateMenu("&File") _AddCtrl($filemenu, "FileMenu") $file1 = GUICtrlCreateMenu("Label 1", $filemenu) $file2 = GUICtrlCreateMenuitem("Label 2", $filemenu) _AddCtrl($file2, "Label 2 at Your Service") $file3 = GUICtrlCreateMenuitem("Label3", $filemenu) _AddCtrl($file3, "Pleased to meet you from Label 3") $file4 = GUICtrlCreateMenuitem("Label 4", $filemenu) _AddCtrl($file4, "Well, you get the picture, Label 4") $statuslabel = GUICtrlCreateLabel($defaultstatus, 0, 250, 300, 16, BitOR($SS_SIMPLE, $SS_SUNKEN)) $statuslabel2 = GUICtrlCreateLabel($defaultstatus, 300, 250, 100, 16, BitOR($SS_SIMPLE, $SS_SUNKEN)) $file11 = GUICtrlCreateMenuitem("Label 11", $file1) _AddCtrl($file11, "This is Label11 subitem of Label1") GUISetState() While 1 If Main() = $GUI_EVENT_CLOSE Then ExitLoop WEnd Exit Func Main() $msg = GUIGetMsg() Select Case $msg = $GUI_EVENT_CLOSE Return $msg Case $msg = $file1 MsgBox(266288, "Menu Clicked", "Label1 clicked.") Case $EVENT = $TIPSHOW If $TIP_TIMER Then If ((TimerDiff($TIP_TIMER) >= $TIP_DELAY) and ($MenuItemId > 0)) Then ShowMenuTip() EndIf Case $EVENT = $TIPCLOSE VoidMenuTip() $EVENT = 0 Case $EVENT = $TIPVISIBLE If TimerDiff($TIP_TIMER) >= $TIP_TTL + $TIP_DELAY Then $EVENT = $TIPCLOSE EndSelect Sleep(50) EndFunc ;==>Main Func _AddCtrl($ControlID, $ControlMsg) _ArrayAdd($aCtrlArray, $ControlID) _ArrayAdd($aCtrlMsgArray, $ControlMsg) EndFunc ;==>_AddCtrl Func ShowMenuTip() DebugMsg("<<ShowMenuTip>>", 1) If $TIP_TIMER > 0 Then If $MenuItemId > 0 Then For $x = 0 To UBound($aCtrlArray) - 1 If $MenuItemId = ($aCtrlArray[$x]) Then GUICtrlSetData($statuslabel, $aCtrlMsgArray[$x]) ToolTip($aCtrlMsgArray[$x]) $EVENT = $TIPVISIBLE ExitLoop EndIf Next EndIf EndIf EndFunc ;==>ShowMenuTip Func VoidMenuTip() ToolTip("") GUICtrlSetData($statuslabel, $defaultstatus) $TIP_TIMER = 0 EndFunc ;==>VoidMenuTip Func StartTimer($hWndGUI, $TimerId, $Interval) If $TIMERENABLED = True Then StopTimer($hWndGUI,$TimerId) $retval = DllCall("User32.dll", "int", "SetTimer", "hwnd", $hWndGUI, "int", $TimerId, "int", $Interval, "int", 0) $TIMERENABLED = True EndFunc ;==>StartTimer Func StopTimer($hWndGUI, $TimerId) $retval = DllCall("User32.dll", "int", "KillTimer", "hwnd", $hWndGUI, "int", $TimerId) $TIMERENABLED = False EndFunc ;==>StopTimer Func TimerCallBack($hWndGUI, $MsgID, $WParam, $LParam) Local $TimerId = BitAND($WParam, 0xFFFF) If $TimerId = $TIP_TIMER_ID Then Main() Return $GUI_RUNDEFMSG EndFunc ;==>TimerCallBack Func MenuTipHandler($hWndGUI, $MsgID, $WParam, $LParam) Local $id = BitAND($WParam, 0xFFFF) Select Case $MsgID = $WM_ENTERMENULOOP DebugMsg("MenuEnterLoop", 1) StartTimer($Form1, $TIP_TIMER_ID, $MSG_INTERVAL) Case $MsgID = $WM_MENUSELECT DebugMsg("MenuSelect", 1) If $USE_TOOLTIP Then If Not ($MenuItemId = $id) Then $MenuItemId = $id ToolTip("") ;make tip disappear on move away. If $MenuItemId > 0 Then $TIP_TIMER = TimerInit() $EVENT = $TIPSHOW EndIf EndIf EndIf Case $MsgID = $WM_EXITMENULOOP DebugMsg("MenuExitLoop", 1) StopTimer($Form1, $TIP_TIMER_ID) $EVENT = $TIPCLOSE EndSelect DebugMsg( "hWndGui= " & $hWndGUI & @LF & "MsgId= " & $MsgID & @LF & "WParam= " & $WParam & @LF & "$LParam= " & $LParam, 1) DebugMsg("ID= " & $id, 1) Return $GUI_RUNDEFMSG EndFunc ;==>MenuTipHandler Func DebugMsg($sMsg, $CR = 0) If $DEBUG Then If $CR Then $sMsg = $sMsg & @LF ConsoleWrite($sMsg) EndIf EndFunc ;==>DebugMsg Regards, [indent]ElTorro[/indent][font="Book"] Decide, Commit, Achieve[/font]_ConfigIO.au3Language Translation --uses Google(tm) MsgBox Move XML wrapper UDF XML2TreeView Zip functionality Split your GUI Save Print ScreenZipPluginEdit In Place listviewSome of my scripts on Google code Link to comment Share on other sites More sharing options...
Sunaj Posted December 30, 2006 Author Share Posted December 30, 2006 (edited) Absolutely awesome! This will do what you want. expandcollapse popup;Menu With Timed Tooltips ;Stephen Podhajecki [eltorro] gehossafats@netmdc.com oÝ÷ Ûú®¢×§^jw±µéÝyÛޮȨíæëYbj{¡×²¢êh²×¶²êi¢»l²Ö§uªÝmèZ¾)à¶%¶*l¢w(×±¶g§ºÈ§¶Å§-±©Á¬²Ø^æjYë¢Çw%¹×r^jj¡×¢iÛ¢·±iË©àzÇ(hyÛh¶¡×ºÚ"µÍÓY[HÚ][YYÛÛÂÔÝ[ÙZXÚÚHÙ[Ü×HÙZÜÜØY]Ð]YËÛÛBÂÐÛÛYÈÕRSÛ][[ÙHHÔÝ[ZBÐÚ[ÙÎÂØJH[[ÝYYYÜÛY HHÛ[ÛÝÕRBØH[[ÝYXYÙÚ[È[Ú[KÙHÜYÚ[[H[ÜÈÜXYÙÚ[ÂØÊHÚ[ÙYÙÈ[[[ÈHÝÈÔHØYÙHY[ÙHÝXÙYÙ HÛÜÜÈÚ]ÛÛ^Y[ÈÛÈÝÈHXÚÈYÈH[[Y[YXØ]ÙBÈÛÛ^Y[ÈÈÕ[ÝÈÜYÚÝ[ÈÚ[[ÝÙHÈ[ÝY]Ø^H[ÈHØ[YHØ^HÈÜX[Y[ËÛÜÜÈ[[YÜHØ^HÜÝHÙÈY[ÈÝËÂÚ[ÛYH ÑÝZPÛÛÝ[Ë]LÉÝÂÚ[ÛYH Ð^K]LÉÝÂÜ ][ÝÑÕRSÛ][[ÙI][ÝËJBÛØ[ ÌÍÕTÑWÕÓÓTHQBØØ[ ÌÍØPÝ^VÌWK ÌÍØPÝÙÐ^VÌWK ÌÍÐÛÛÛQ ÌÍÑÛØ[ÒHH ÌÍ××ÐÛÛÛQ ÌÍÒÝXÝ]HH ÌÍÕ[ÑÝ[H ÌÍÜÞ[Ð^VÌBÛØ[ ÌÍÙY][Ý]ÈH ][ÝÔXYI][ÝÂÛØ[ ÌÍÜÝ]ÂÛØ[ ÌÍÓY[R][RYÛØ[ ÌÍÒQPÛÝ[HÈÚ[ÌÈÈXXÚYÛÛÈÛÜÙYÛØ[ ÌÍÑUSÛØ[ ÌÍÕSQTSPQH[ÙHÈYÈÙ]Ú[Ù][YHÈØ[YÛØ[ ÌÍÕTÕSQTÈ[YÝ[ÛÜÛÛÚX[BÛØ[ÛÛÝ ÌÍÕTÕSQTÒQHNNHÈ[YYÜÙ][YBÛØ[ÛÛÝ ÌÍÕTÒÕÈHHÈ][ÛØ[ÛÛÝ ÌÍÕTTÒPHHÈ][ÛØ[ÛÛÝ ÌÍÕTÕHÌÌÈÈÝÈÛÈÈÚÝÈÛÛÛØ[ÛÛÝ ÌÍÕTÑSVHHÌÌÈÈÝÈÛÈÈØZ]ÈÚÝÈÛÛÛØ[ÛÛÝ ÌÍÓTÑ×ÒSTSHÌÈÈ[[Ú[ÝÜÈÚ[ÙHÈÙ[ÕÚ[ÝÈYÜØYÙHÛÚÜËÛØ[ÛÛÝ ÌÍÕÓWÑSTQSSÓÔHLBÛØ[ÛÛÝ ÌÍÕÓWÑVUQSSÓÔHLÛØ[ÛÛÝ ÌÍÕÓWÓQSTÑSPÕHLQÛØ[ÛÛÝ ÌÍÕÓWÕSQTHLLÂÛØ[ÛÛÝ ÌÍÕÓWÑSTQHHLBÕRTYÚÝÙÈ ÌÍÕÓWÑSTQSSÓÔ ][ÝÓY[U[][ÝÊBÕRTYÚÝÙÈ ÌÍÕÓWÓQSTÑSPÕ ][ÝÓY[U[][ÝÊBÕRTYÚÝÙÈ ÌÍÕÓWÑVUQSSÓÔ ][ÝÓY[U[][ÝÊBÕRTYÚÝÙÈ ÌÍÕÓWÑSTQH ][ÝÓY[U[][ÝÊHÈÈXZÙHÛÛ^Y[YÈØXÚ[[Ý[ÈÚ[ÙY[HÚ]Ý]ÛÜÚ[È]ÝZTYÚÝÙÈ ÌÍÕÓWÕSQT ][ÝÕ[YØ[XÚÉ][ÝÊBÌÍÑÜLHHÕRPÜX]J ÌÎNÓY[HÛÛÉÌÎNË JBÌÍÙ[[Y[HHÕRPÝÜX]SY[J ][ÝÉ[Ñ[I][ÝÊBÐYÝ ÌÍÙ[[Y[K ][ÝÑ[SY[I][ÝÊBÌÍÙ[LHHÕRPÝÜX]SY[J ][ÝÓX[I][ÝË ÌÍÙ[[Y[JBÌÍÙ[LHÕRPÝÜX]SY[Z][J ][ÝÓX[][ÝË ÌÍÙ[[Y[JBÐYÝ ÌÍÙ[L ][ÝÓX[][ÝÙXÙI][ÝÊBÌÍÙ[LÈHÕRPÝÜX]SY[Z][J ][ÝÓX[É][ÝË ÌÍÙ[[Y[JBÐYÝ ÌÍÙ[LË ][ÝÔXÙYÈYY][ÝHÛHX[É][ÝÊBÌÍÙ[MHÕRPÝÜX]SY[Z][J ][ÝÓX[ ][ÝË ÌÍÙ[[Y[JBÐYÝ ÌÍÙ[M ][ÝÕÙ[[ÝHÙ]HXÝKX[ ][ÝÊBÌÍÜÝ]ÛX[HÕRPÝÜX]SX[ ÌÍÙY][Ý]ËLÌM]Ô ÌÍÔÔ×ÔÒSTK ÌÍÔÔ×ÔÕSÑSJBÌÍÜÝ]ÛX[HÕRPÝÜX]SX[ ÌÍÙY][Ý]ËÌLLM]Ô ÌÍÔÔ×ÔÒSTK ÌÍÔÔ×ÔÕSÑSJBÌÍÙ[LLHHÕRPÝÜX]SY[Z][J ][ÝÓX[LI][ÝË ÌÍÙ[LJBÐYÝ ÌÍÙ[LLK ][ÝÕÈÈX[LHÝX][HÙX[I][ÝÊBÌÍÚÛÛ^Y[HHÕRPÝÜX]PÛÛ^Y[H BÌÍÚ[Z][HHÕRPÝÜX]SY[Z][H ][ÝÓÜ[][ÝË ÌÍÚÛÛ^Y[JBÐYÝ ÌÍÚ[Z][K ][ÝÕÛÜÜÈ[ÛÛ^Y[Z][H ÌÎNÉÌÍÚ[Z][IÌÎNÈÈÙ[ ÌÌÎÉ][ÝÊBÌÍÚØ]Z][HHÕRPÝÜX]SY[Z][H ][ÝÔØ]I][ÝË ÌÍÚÛÛ^Y[JBÐYÝ ÌÍÚØ]Z][K ][ÝÕÛÜÜÈ[ÛÛ^Y[Z][H ÌÎNÉÌÍÚØ]Z][IÌÎNÈÈÙ[ ÌÌÎÉ][ÝÊBÌÍÚ[Ú][HHÕRPÝÜX]SY[Z][H ][ÝÒ[É][ÝË ÌÍÚÛÛ^Y[JBÐYÝ ÌÍÚ[Ú][K ][ÝÕÛÜÜÈ[ÛÛ^Y[Z][H ÌÎNÉÌÍÚ[Ú][IÌÎNÈÈÙ[ ÌÌÎÉ][ÝÊBÕRTÙ]Û][ ÌÍÑÕRWÑUSÐÓÔÑK ][Ý×Ñ^] ][ÝÊBÕRTÙ]Ý]J BÚ[HBÛY ÌÌÊBÑ[[È][ÛÜ BÙ[XÝØÙH ÌÍÑUSH ÌÍÕTÒÕÂY ÌÍÕTÕSQT[Y [YY ÌÍÕTÕSQTH ÝÏH ÌÍÕTÑSVJH[ ÌÍÓY[R][RY ÝÈ JH[ÚÝÓY[U B[YØÙH ÌÍÑUSH ÌÍÕTTÒPBY[YY ÌÍÕTÕSQTH ÝÏH ÌÍÕTÕ È ÌÍÕTÑSVH[ÚYY[U B[Ù[XÝ[[Â[ÈÐYÝ ÌÍÐÛÛÛQ ÌÍÐÛÛÛÙÊBÐ^PY ÌÍØPÝ^K ÌÍÐÛÛÛQ BÐ^PY ÌÍØPÝÙÐ^K ÌÍÐÛÛÛÙÊB[[Â[ÈÚÝÓY[U BY ÌÍÕTÕSQT ÝÈ[Ü ÌÍÞHÈPÝ[ ÌÍØPÝ^JHHBY ÌÍÓY[R][RYH ÌÍØPÝ^VÉÌÍÞJH[ÕRPÝÙ]]J ÌÍÜÝ]ÛX[ ÌÍØPÝÙÐ^VÉÌÍÞJBÛÛ ÌÍØPÝÙÐ^VÉÌÍÞJB ÌÍÑUSH ÌÍÕTTÒPB ÌÍÒQPÛÝ[H^]ÛÜ[Y^[Y[[ÈÏOIÝÔÚÝÓY[U[ÈÚYY[U BÛÛ ][ÝÉ][ÝÊB ÌÍÒQPÛÝ[HÕRPÝÙ]]J ÌÍÜÝ]ÛX[ ÌÍÙY][Ý]ÊB ÌÍÕTÕSQTH[[ÈÏOIÝÕÚYY[U[ÈÝ[Y ÌÍÚÛÕRK ÌÍÕ[YY ÌÍÒ[[ BY ÌÍÕSQTSPQHYH[ÝÜ[Y ÌÍÚÛÕRK ÌÍÕ[YY B ÌÍÜ][HØ[ ][ÝÕÙÌ ][ÝË ][ÝÚ[ ][ÝË ][ÝÔÙ][Y][ÝË ][ÝÚÛ ][ÝË ÌÍÚÛÕRK ][ÝÚ[ ][ÝË ÌÍÕ[YY ][ÝÚ[ ][ÝË ÌÍÒ[[ ][ÝÚ[ ][ÝË B ÌÍÕSQTSPQHYB[[ÈÏOIÝÔÝ[Y[ÈÝÜ[Y ÌÍÚÛÕRK ÌÍÕ[YY B ÌÍÜ][HØ[ ][ÝÕÙÌ ][ÝË ][ÝÚ[ ][ÝË ][ÝÒÚ[[Y][ÝË ][ÝÚÛ ][ÝË ÌÍÚÛÕRK ][ÝÚ[ ][ÝË ÌÍÕ[YY B ÌÍÕSQTSPQH[ÙB[[ÈÏOIÝÔÝÜ[Y[È[YØ[XÚÊ ÌÍÚÛÕRK ÌÍÓÙÒQ ÌÍÕÔ[K ÌÍÓ[JBØØ[ ÌÍÕ[YYH]S ÌÍÕÔ[KBY ÌÍÕ[YYH ÌÍÕTÕSQTÒQ[][ÛÜ B] ÌÍÑÕRWÔSQTÑÂ[[ÈÏOIÝÕ[YØ[XÚÂ[ÈY[U[ ÌÍÚÛÕRK ÌÍÓÙÒQ ÌÍÕÔ[K ÌÍÓ[JB ÌÍÒQPÛÝ[ ÏHBY ÌÍÒQPÛÝ[ ÝÏHÈ[ÛXZÙHÛÛ^ØXÛ[ÝH]Ø^BÛÛ ][ÝÉ][ÝÊB[YØØ[ ÌÍÚYH]S ÌÍÕÔ[KBÙ[XÝØÙH ÌÍÓÙÒQH ÌÍÕÓWÑSTQSSÓÔÝ[Y ÌÍÑÜLK ÌÍÕTÕSQTÒQ ÌÍÓTÑ×ÒSTS BØÙH ÌÍÓÙÒQH ÌÍÕÓWÓQSTÑSPÕY ÌÍÕTÑWÕÓÓT[YÝ ÌÍÓY[R][RYH ÌÍÚY HÜ ÌÍÓY[R][RYH ÌÍÚY H[ ÌÍÓY[R][RYH ÌÍÚYÛÛ ][ÝÉ][ÝÊHÛXZÙHØXÛ[ÝH]Ø^B ÌÍÒQPÛÝ[HY ÌÍÓY[R][RY ÝÈ[ ÌÍÕTÕSQTH[Y[] B ÌÍÑUSH ÌÍÕTÒÕÂ[Y[Y[YØÙH ÌÍÓÙÒQH ÌÍÕÓWÑVUQSSÓÔÝÜ[Y ÌÍÑÜLK ÌÍÕTÕSQTÒQ BÚYY[U B[Ù[XÝ] ÌÍÑÕRWÔSQTÑÂ[[ÈÏOIÝÓY[U[[ÈÑ^] B^][[ Edited December 30, 2006 by Sunaj [list=1][*]Generic way to detect full path to default browser, List/ListView Events Using GuiRegisterMsg (detect doubleclick and much more)[*]Using dllcall for full control over fileopendialog, Make DirMove act somewhat normally (by circumventing it...)[*]Avoid problems with "&" (chr(38)) in code, Change desktop maximized area/workspace (fx to make deskbar type app)[*]Change focus behavior when buttons are clicked to work closer to 'standard windows' app[*](Context) Menus With Timed Tooltips, Fast Loops & Operators in AU3[*]Clipboard UDF, A clipboard change notification udf[/list] Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now