■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#46042-0ポップアップメニューの消去方法?ガンバ2001-08-22(水) 17:35
     #46055-0RE#46042:ポップアップメニューの消去方法?ゆう(U)2001-08-22(水) 22:22
     #46066-0RE#46055:ポップアップメニューの消去方法?ガンバ2001-08-23(木) 09:50
     #46073-0RE#46042:ポップアップメニューの消去方法?JI2001-08-23(木) 11:42
     #46096-0RE#46073:ポップアップメニューの消去方法?ガンバ2001-08-23(木) 15:44
     #46100-0RE#46096:ポップアップメニューの消去方法?ゆう(U)2001-08-23(木) 16:26
     #46122-0RE#46100:ポップアップメニューの消去方法?ガンバ2001-08-23(木) 18:16
#46042-0
ポップアップメニューの消去方法?
タスクトレイに表示されているアプリケーションがあり
それを右クリックするとポップアップメニューが表示されます。
何か選択すればメニューが消えますが、
画面のどこかをクリックした時に現在表示されている
ポップアップメニューを消したいのですが
どの様にしたら良いのでしょうか?
どなたか知っている方がいましたらよろしくお願いします。
#46055-0
RE#46042:ポップアップメニューの消去方法?
> 何か選択すればメニューが消えますが、
クリック(左)のみ有効にしているのですか?

> ポップアップメニューを消したいのですが
> どの様にしたら良いのでしょうか?
ポップアップメニューの引数を全て設定してはいかが?
※右ボタンも有効にしておく
#46066-0
RE#46055:ポップアップメニューの消去方法?
> > 何か選択すればメニューが消えますが、
> クリック(左)のみ有効にしているのですか?
そうです。
メニューのどれかを左クリックするそのクリックイベントに対応するコードが実行されます。

> > ポップアップメニューを消したいのですが
> > どの様にしたら良いのでしょうか?
> ポップアップメニューの引数を全て設定してはいかが?
> ※右ボタンも有効にしておく
フォームは、システムトレイ内でアイコン化されています。ので有効にしても画面のどこかを
クリックしてもメニューが消えません?

ヘルプが探すと下記の事が記述されていました。
 ショートカット メニューを表示すると、PopupMenu メソッドの呼び出しに続くコードは、
  ユーザーがメニューのコマンドをクリックするか、
  ショートカット メニューを取り消すまで実行されません。

このショートカット メニューを取り消す方法がわかりません?
でも、時々メニューが消える時が有ります。!?
#46073-0
RE#46042:ポップアップメニューの消去方法?
> タスクトレイに表示されているアプリケーションがあり
> それを右クリックするとポップアップメニューが表示されます。
> 何か選択すればメニューが消えますが、
> 画面のどこかをクリックした時に現在表示されている
> ポップアップメニューを消したいのですが
> どの様にしたら良いのでしょうか?
> どなたか知っている方がいましたらよろしくお願いします。
PopupMenu メソッドの前に、SetForegroundWindow APIで
自フォームをフォアグラウンドに設定すれば、多分OKでしょう。
#46096-0
RE#46073:ポップアップメニューの消去方法?
JIさんへ

> > システムトレイに表示されているアプリケーションがあり
> > それを右クリックするとポップアップメニューが表示されます。
> > 何か選択すればメニューが消えますが、
> > 画面のどこかをクリックした時に現在表示されている
> > ポップアップメニューを消したいのですが
> > どの様にしたら良いのでしょうか?
> > どなたか知っている方がいましたらよろしくお願いします。

> PopupMenu メソッドの前に、SetForegroundWindow APIで
> 自フォームをフォアグラウンドに設定すれば、多分OKでしょう。

Windows98/MEは、OKですが、Windows2000ではNGでした!
SetForegroundWindow を実行する前に GetActiveWindow と BringWindowToTop を
設定してもだめでした。
メニューにフォーカスさえ在れば消えるのですが・・・!


#46100-0
RE#46096:ポップアップメニューの消去方法?
> > PopupMenu メソッドの前に、SetForegroundWindow APIで
> > 自フォームをフォアグラウンドに設定すれば、多分OKでしょう。
> 
> Windows98/MEは、OKですが、Windows2000ではNGでした!
私の環境(Win2000(SP2)/VB6.0(SP5))では問題なく
動作するようですが・・・

タスクバー非表示で
Menu_A : Me.Hide
Menu_B : Me.Show
のポップアップメニューを表示し

Hide・Showそれぞれの状態で、表示したポップアップメニューは
1.デスクトップのクリック
2.他のフォルダのクリック
3.別Exeのフォームをクリック
4.メニューのクリック
で確認した結果、全て消えましたが・・・

ちなみに、PopupMenuの第2引数は右クリックも可にしています。


ガンバ さんの動作(開発)環境や動作確認の方法と
コードの一部など詳細な情報も添付して質問しては
いかがでしょう。
#46122-0
RE#46100:ポップアップメニューの消去方法?
JIさん
ゆう(U)さん

Windows2000でもできました。

ちょっとしたミスでした。
SetForegroundWindow の引数でウィンドウのハンドルを渡すのですが、
システムトレイにアイコン化されたウィンドウのハンドルを使わないで
システムトレイのアイコンにマウスが来た時の GetActiveWindow の
ハンドルを使っていたのが間違っていたみたいです。

という事で、どうも有り難うございました。
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)