I found I could use dzEventMagic to catch the top level menu item being clicked. I am using message 279 (WM_INITMENUPOPUP) and this works perfectly - until I show an OpenDialog. After that the magicEvent no longer fires. Can anyone explain why this is so - or even better show a way round it! I have attached a small demo to show what I mean. Click on any of the top level menu items and the panel will flash. Then click on the button, close the OpenDialog that appears and try the menu items again, this time the panel will not flash. ...... Just tested the demo on the device and there it does work. So it would seem that the dzEventmagicDesktop.dll behaves differently to the device dll.