起動時にタスクトレイにアイコンを追加し、
アイコン上でマウスの右クリックが押された場合に、
メニューを出し、メニュー内の項目が選択された時は、
所定の動作を、
メニュー外がクリックされた時は、メニューを消す、
ということをしたいのですが、メニューを消すところが
上手く出来ません。
現在、メニューを出す時に、
PopupMenuメソッドを使っているのですが、
これだとメニュー内の項目が選択されない限り、
その行で止まってしまうみたいなので、
メニューが一回表示されてしまうと、
画面を切り替えようが、メニューが最前面に
表示されたままになってしまいます。
PopupMenuメソッド以外の方法でメニューを出せば、
何とかなるかと思ったのですが、そのやり方も
分からなかったので、ここに質問させていただきました。
何かいい方法はありませんでしょうか。
よろしくお願いします。
PopupMenuメソッドの前にSetForegroundWindowを使うと大丈夫のようです。
少なくとも僕の環境ではそれでメニューは残らなくなってます。
Call SetForegroundWindow(Me.hWnd)
Call PopupMenu(mnuTaskTray, , , , mnuVisible)
takkさんありがとうございます。
私の環境でもできるようになりました。
これからSetForegroundWindowについて
調べてみたいと思います。