Hi all,
I am developing lister plugin (in Delphi) and I want to catch CM_MOUSEENTER and CM_MOUSELEAVE messages, but the DLL's method Application.Idle is never called. (Nor Application.HandleMessage, looks like the DLL's Application object is not running the application's messages loop).
I have synchronized DLL's Application.Handle with the handle of the lister, but if the lister's OnIdle event would call some exported DLL routine which in turn call the DLL's Application.HandleMessage, I guess it would work.
But as I don't have any impact on such changes is there any other workaround for it?
Thanks for any suggestions.
catching CM_MouseEnter, CM_MouseLeave messages
Moderators: Hacker, petermad, Stefan2, white
- ghisler(Author)
- Site Admin
- Posts: 50532
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
TC does run Application.HandleMessage, but I guess that it doesn't recognize your plugin's Delphi controls as its own. So you need to catch WM_MOUSEMOVE and WM_MOUSELEAVE instead. When you get WM_MOUSELEAVE, set a flag "outside" to true. When you get WM_MOUSEMOVE, check whether "outside" is true, and if not, you set it to true and handle your MouseEnter function.
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com