• 締切済み

タスクトレー常駐

初心者なので、サンプル等みようみまねで何とか・・・という感じです。 今MFCでタスクトレーに常駐させるアプリを作成しております。そこで、タスクトレーのアイコンを右クリックしてメニューを表示させていろんな処理をさせようと考えております。そこで、わからないのが、メニューを表示させて、なにも選択しなかった場合、メニューを消すことができておりません。 その出てきたメニューリスト以外のところをクリックするとそのメニューを閉じるようにしたいとおもっているのですが、どのようにすればいいのか教えていただけないでしょうか。 ちなみに、「DefWindowProc」関数でメッセージを取得してWM_TRAYICONMESSAGE時にメニューを表示するようにしています。 何か補足しなければならなければおっしゃてください。 よろしくお願いします。

みんなの回答

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

これ。 http://support.microsoft.com/default.aspx?scid=kb;en-us;135788 ようは、メニューを表示したら、選択されなかったときでもメッセージを送りましょうということ。 ここではWM_NULLをおくってますね。

関連するQ&A

  • タスクトレイ常駐するプログラムの書き方

    VisualBasic2008で起動させると、タスクトレイに常駐し、 ダブルクリックや右ボタンから設定メニューを選ぶと、設定用のダイアログボックスが表示されるようなアプリを作成したいのですが、何か簡単なサンプルはあるのでしょうか? よく見かける例は桜時計やメモリークリーナのようなものです。 タスクトレイで常駐する仕組みが知りたいので、複雑なものより簡単なものを探しています。 このようなタスクトレイ常駐するソフトを解説している本なども合わせて探しています。

  • タスクトレイの右クリックメニューが、常駐右クリックメニューとかぶる

    お世話になります。 1.タスクトレイorタスクバーを右クリックすると   右クリックメニューが、 "ツールバー" "重ねて表示" "上下に並べて表示" ・・・・ "プロパティ"   と表示されます。 2.タスクトレイに常駐しているアイコン(ex.VirusScanやフリーツールなど)を   右クリックするとそのツール特有の右クリックメニューが出るかと思います。 しかし、上記2を実行すると 数回に1回くらい上記1.の右クリックメニューが同時に表示され、 1と2の右クリックメニューがかぶってしまうのです。 さらにその後もう一度右クリックをしても、 2のメニューは消えるのですが、1のメニューはそのままフリーズしたように のこります。 Microsoftで検索しても、上記のような現象はひっからなかったので、、、 このような現象について何かご存知の方、 回答の方、よろしくお願いします。

  • タスクトレイ

    タスクトレイに使いたいアイコンを常に表示させたいんですが、 タスクバー→右クリック→プロパティ→タスクバータブ→(アクティブでないインティゲーターを隠す)→カスタマイズ→通知のカスタマイズ で、常に表示にしても、現在の項目にあるときは、タスクトレイにあるんですが、過去の項目にある場合は、タスクトレイに表示されません。常にタスクトレイにアイコンがある状態にするにはどうすればいいですか?

  • タスクトレイへアイコンを常駐させる

    ウイルスセキュリティのアイコンだけがタスクトレイから消えてしまうことがあります。常駐させるにはどうすればいいのでしょうか。

  • タスクトレイのアイコンが消えてしまう。

    こんにちは。 今、タスクトレイに常駐するプログラムを作成しています。 プログラム起動するとすぐ、メインウインドウとタスクトレイにアイコンが 表示されます。 メインウインドウ右上の最小化ボタンまたは、終了ボタンを押すと メインウインドウが消えてタスクトレイのアイコンだけが残るように したいと考えています。 最小化ボタンの場合はWM_SIZEをキャッチして、ShowWindow(hwnd, SW_HIDE) で、メインウインドウだけ消え、タスクトレイのアイコンは残ります。 しかし、終了ボタンの場合は、WM_DESTROY をキャッチし、同じくShowWindow(hwnd, SW_HIDE) でメインウインドウを消しているのですが、メインウインドウだけでなく、 アイコンも消えてしまいます。アイコンを消さずに残すようにしたいのですが、 どうしたらよいでしょうか。WM_DESTROYでは、PostQuitMessage(0)はポストして おらず、最後にreturn 0;を返しています。 どうぞよろしくお願いします。 環境 BCC、WindowsXP、C言語、Win32 API

  • タスクトレイからメニューを表示するには

    Visual C++ 2010 Expressにて、タスクトレイにアイコンを表示し、右クリックでメニューを出す方法を教えてください。 Visual C++ 6.0はお遊びで触ったことがありますが、かなり忘れてしまいました。

  • タスクトレイアイコンからのメニュー表示について

    今VBでプログラムを作成しています。 サンプルソースを調べたりして、「Shell_NotifyIcon」を使用してタスクトレイにアイコンを追加する事はできたのですが、そのアイコンを右クリック等してメニューを表示させることができません。コールバックメッセージにWM_MOUSEMOVEを指定しているのですがフォームのMouse_Moveイベント自体が発生していないようです。 いくつかサンプルソースをダウンロードして実行してみましたが問題は無かったので、環境のせいでは無いと思います。 原因の可能性として考えつくものがあったら教えて下さい。 (ソースコードは長くなるので割愛させて頂きます。APIを使用している部分は全てサンプルソースのコピーそのままです。)

  • 常駐ソフトについて

    Quick Timeをインストールしたら、タスクトレイにアイコンが表示されるようになりました。 そこで質問です。 1.タスクバーに表示されているということは、常駐してメモリを食っているということですか? 2.アイコンを右クリックして常駐を終わらせても、例えばネット上の動画をクリックするとちゃんと動画が再生されます。何のために常駐しているのでしょうか? 以上よろしくお願い致します。

  • タスクトレイの常駐アイコン表示されない

    SOURCENEXTのウイルスセキュリティ2006をアップデイトすると タスクトレイの常駐アイコンハードデスクを安全に取り外す アイコンと驚速パソコン2006のアイコンが表示されなくなった

  • タスクトレイの常駐解除後について

    VB6(SP6)にてタスクトレイに常駐するプログラムを作成しました。 そして、プログラムを終了するとき下記コードにて常駐を解除しています。 Private Sub Form_Unload(Cancel As Integer) 'タスクトレイのアイコンを消去 ingAPIReVal = Shell_NotifyIcon(NIM_DELETE, nidNoftyIconData) '終了 End End Sub プログラムは無事終了するのですが、タスクトレイにアイコンが残ってしまいます。 マウスをタスクトレイに近づけると消えるのですが... 極端な話 5回実行・終了を繰り返すと、同じアイコンが5個並び...マウスを近づけると一気に消えてしまいます。 プログラムの動作に問題はないのですが、あまり体裁が良いとは思えず どうにかならないかと質問させて頂きました。 対処方法をご存じの方、ご教授下さいm(__)m

専門家に質問してみよう