ToolTips (created by setting the Tip property in the Dyalog GUI) have a new theme in Windows Vista and Windows 7, they are grey metallic.
By default, ToolTips of any object that doesn't require setting the TipObj property to show tips use this new style, however objects that require a TipObj (like e.g. an Edit field), don't, the render with the old XP black on yellow style.
I'm trying to make sure all tool tips use the new style using some []NA and win32 API.
If I create my own ToolTip via win32 from scratch and attach it to an object by sending an TTM_ADDTOOL message, everything works fine and it renders with the correct theme. But to avoid having to change the code everywhere it would be nice to set some style on the TipField object itself, causing everything to look nice (I suspect TTS_USEVISUALSTYLE is needed). Sadly, TipField objects do no have a Handle property where I can get their HWND.
Can I get a hwnd for the TipField object in any way? Or is the TipField object in fact just a template used when sending TTM_ADDTOOL messages in response to someone setting a Tip property? So I either need to create ToolTip controls manually or ask Dyalog to fix this?
Finding the handle of a TipField/ToolTip
- JohnD|Dyalog
- Posts: 74
- Joined: Wed Oct 01, 2008 9:35 am
Re: Finding the handle of a TipField/ToolTip
The "TipField" object in Dyalog pre-dates the standard Tip API support in Windows. The tips that you can set on toolbuttons do use the standard Windows Tip API, and so do a better job of honouring the O/S look and feel.
The "TipField" implementation is internal to the interpreter and is not accessible to the APL programmer, so you cannot manipulate those objects through []NA.
Dyalog no longer formally supports Windows 9x, and so all the currently supported operating systems (on Windows) have the Tip API. We could now "retire" the old implementation and change our TipFields to use the standard Windows API. We should be able to this without requiring any APL code changes. This is something that we will consider doing in version 13.0.
Best Regards,
John Daintree.
The "TipField" implementation is internal to the interpreter and is not accessible to the APL programmer, so you cannot manipulate those objects through []NA.
Dyalog no longer formally supports Windows 9x, and so all the currently supported operating systems (on Windows) have the Tip API. We could now "retire" the old implementation and change our TipFields to use the standard Windows API. We should be able to this without requiring any APL code changes. This is something that we will consider doing in version 13.0.
Best Regards,
John Daintree.
Re: Finding the handle of a TipField/ToolTip
Interesting, thanks for the quick reply.
I'll just try to ignore the non-themed tooltips from now on (or at least until the next release of Dyalog).
I'll just try to ignore the non-themed tooltips from now on (or at least until the next release of Dyalog).