The SetDelayTime documentation in the help file and the include file seems to indicate the values will work as the MSDN indicates the analogous times work with the MS tip control.
TTDT_RESHOW Retrieve the length of time it takes for subsequent tool tip windows to appear as the pointer moves from one tool to another.
However I don't see the CJ code working that way. Examining the code I find that if the user waits for a tip to appear and then moves to another control, the tip will display immediately as the code compares the tick count obtained when the last call to SetVisibleTool was made with the current tick count and if that value is LESS than the delay time I set, SetVisibleTool is called immediately and the tip for the new control is immediately displayed (SetVisibleTool displays the tip control's window). It seems exactly backwards and perhaps the test should be ">=" and not "<"?
The result is that if the user moves over the command ribbon and hesitates long enough for a tip to appear and then moves quickly across the ribbon, say to close a document or simply to move the mouse elsewhere, the user is presented with a constant barage of tooltips. The only way I have found to effectly avoid this is to set the TTDT_RESHOW time to zero. But of course then the user has to wait for the full initial time delay to lapse before another tip is shown if the user is actually trying to look at tips. Even setting the value to 1 ms does not prevent the tipping as the mouse moves across the ribbon from occurring.
Also, once a tip displays, it doesn't seem to go away. I tried setting the TTDT_AUTOPOP time to various values but it has no effect. For instance I set the valueu to 2000 and expect the tip to go away in 2 seconds. But I can remove my hand from the mouse and just let it sit there and the tip remains displayed (I waited for over two minutes in one test.)
Our product planners are clamoring for me to fix this. They want the initial tip to display after 900ms (which I have working) and then subsequent tips to display only if the user has been over the next control for 300 ms. About the only TTDT I can consistently predict is the TTDT_INITIAL value. Can you please give me a good description of just how the other two values really work?
|