ポップアップメニューを消すには?

解決


たき  2003-04-15 13:25:17  No: 106706  IP: [192.*.*.*]

起動時にタスクトレイにアイコンを追加し、
アイコン上でマウスの右クリックが押された場合に、
メニューを出し、メニュー内の項目が選択された時は、
所定の動作を、
メニュー外がクリックされた時は、メニューを消す、
ということをしたいのですが、メニューを消すところが
上手く出来ません。

現在、メニューを出す時に、
PopupMenuメソッドを使っているのですが、
これだとメニュー内の項目が選択されない限り、
その行で止まってしまうみたいなので、
メニューが一回表示されてしまうと、
画面を切り替えようが、メニューが最前面に
表示されたままになってしまいます。
PopupMenuメソッド以外の方法でメニューを出せば、
何とかなるかと思ったのですが、そのやり方も
分からなかったので、ここに質問させていただきました。
何かいい方法はありませんでしょうか。
よろしくお願いします。

編集 削除
takk  2003-04-15 13:57:28  No: 106707  IP: [192.*.*.*]

PopupMenuメソッドの前にSetForegroundWindowを使うと大丈夫のようです。
少なくとも僕の環境ではそれでメニューは残らなくなってます。

Call SetForegroundWindow(Me.hWnd)
Call PopupMenu(mnuTaskTray, , , , mnuVisible)

編集 削除
たき  2003-04-15 14:13:54  No: 106708  IP: [192.*.*.*]

takkさんありがとうございます。
私の環境でもできるようになりました。
これからSetForegroundWindowについて
調べてみたいと思います。

編集 削除