• ベストアンサー

アプリ終了時にタスクトレイからアイコンを消すには?

taka_tetsuの回答

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

>そこで以下のように終了まえに追加することでうまく行きましたが、これで良かったのかな? >::Shell_NotifyIcon( NIM_DELETE, &m_stNotifyIcon ); >PostMessage( WM_CLOSE, 0, 0L); これでもいいですけど、通常はOnCloseの中で 終了の確認メッセージを出すパターンが多いと思うので、 そんなつくりにした場合、続行したときでも 消えちゃいますよね。 なんで、Postする前よりは、OnCloseの中でしょう。 >ちなみにtaka_tetsuさんは、ここ以外のQ&Aでも回答されていますか? してないですよ。

VitaminBB
質問者

お礼

回答ありがとうございます。 >なんで、Postする前よりは、OnCloseの中でしょう。 分かりました。

関連するQ&A

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

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

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

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

  • タスクトレイに文字を表示するには

    よろしくお願い致します。 環境 WIN98 VC++6.0 MFC にて タスクトレイに文字を表示するにはどうすれば良いのでしょう? 現在::Shell_NotifyIcon( NIM_ADD, &m_stNotifyIcon );にてアイコンを表示することは出来ています。

  • タスクトレイにアイコンを追加したいのですが・・・

    ディスプレイ下部のタスクバーの右端にいくつかアイコンがあります。 タスクトレイと呼ぶのでしょうか(クイック起動バーのことではありません)・・・そのタスクトレイにあったsmart vision(TVを見るソフト)のアイコンがいつの間にか消えてしまいました。 そんなわけで、プログラムを起動するためには、「スタート」ボタンからたどってsmart visionを起動するしかない状態になっています。 プログラム(smart vision)のアイコンをタスクトレイに追加するにはどうしたら良いのでしょうか? ヘルプを見ても、どれが自分の質問に答えるものなのかがわからなくて困ってしまいます。 あまりに初心者の質問で申し訳ないのですが、どなたか知恵を貸して頂けるとありがたいです。 ちなみに、NECのValuestar Lです。OSはWindows XPです。

  • タスクトレイから出したメニューの実行について

    ここを参考に作りました。 http://www.alpha-net.ne.jp/users2/uk413/vc/VCT_TaskTray.html <仕様> メインフォームはタスクバーにアプリが表示されないようにするため、非表示にした。 メインフォームの代わりにモードレスダイアログを主ウィンドウとした。 ダイアログクラスの中に、タスクトレイにアイコンを表示してメニューを出すコードを記述した。 このような場合において、 メニューの中のID_Myxxxの実装をクラスウィザードを使って行うとき、 ダイアログクラス内に書くと問題ありませんが、 クラスウィザードを使ってクラス名でCMainFrameを選んでもオブジェクトIDにID_Myxxxが表示されるので、CMainFrameクラスに書いてみましたが実行されません。 どうしてこうなるのですか? ************************** 非常に分かりにくくて済みません。 簡単に書くと、 ダイアログクラスでメニューを表示した場合、 メニューの実装をダイアログクラスに書くと問題ないですが、CMainFrameクラスに書くと実行されません。 どうしてなのでしょうか?

  • アンインストールしてもタスクトレイにアイコンが・・!

    win2000を使用しています。 アプリケーションソフトをアンインストールしても タスクトレイ(画面右下)にアイコンが残ります。 まだ完全に削除されていないのでしょうか? タスクトレイのアイコンを消去する方法を教えてください。

  • フリーズ後のタスクトレイアイコンの戻し方

    パソコンを4~5日ぶっ続けて使っていると、フォルダの開閉などがだんだん動きが重たくなって、そのうちフォルダーを開いただけで、あるいは開いたフォルダ内のファイルを再生しようとクリックしたらフリーズします。 感じとしてはリソース不足のような気もします。 「システムエラーコード1400ウィンドウ ハンドルが無効です」というエラーがよくでます。何かのアプリのエラーメッセージなのかOSのエラーなのかわかりませんがこれが頻繁に出ると寿命と言う感じです。そのときは再起動してます。 上の、たとえばフリーズしたフォルダを消そうと、CTRL+ALT+DELでフォルダを終了すると、フォルダは消えてくれますが、変わりに画面全体が一瞬ちらつきます。具体的には壁紙を残して、0.2秒くらいデスクトップアイコンもタスクバーも全部消えます。そのちらついたあと、復帰するのですが、 画面右下のタスクトレイのアイコンが全部は復帰しません。画面がちらついたあと、再度スタートアップに登録したものを読み込んでいるかのように一つ一つ戻ってくるのですが、16個登録してるうちの半分くらいしか戻りません。 そこでタスクトレイに入れようと、プログラムからスタートアップで直接クリックするのですが、なぜかタスクトレイに反映されません。 カレンダー、ワンセグチューナー、驚速メモリなどのアイコンがプログラムをクリックしてもタスクトレイに戻りません。驚速メモリはバックグラウンドで動いてるのは警告が出るのでわかります。他のはわかりません。すごく困ります。再起動すればいいのですが、いろいろ作業をしてる途中でこれが起こると、作業終了までタスクトレイにアイコンがないままです。 どうしてこういうことが起こるのでしょう?MEでのリソース問題のようなものが、XPでもあるとしか思えないのですが。 また再起動なしにタスクトレイにアイコンを復活させる方法はないでしょうか?タスクマネージャーのプロセスをみて何とかならないかと思ったんですが良くわかりません。 バックグラウンドで明らかに働いてるにもかかわらず、タスクトレイから消えてしまったアイコンの復活方法が知りたいのですが、いい方法はないでしょうか? どなたかお気づきのことがあるかたおられましたら、アドバイスをよろしくお願いします。

  • タスクトレイのアイコン

    当方Win98です。 クイックタイム、リアルプレイヤーをダウンロード したところタスクトレイにこれらのアイコンが常駐 してしまいます。 これらを削除する方法があれば教えてください。 よろしくお願いします。

  • タスクトレイのIMEのアイコン

    Win2000です。 タスクトレイにIMEのアイコンを表示させる方法をおしえてください。

  • タスクトレイのアイコンが消えた

    昨日から画面右下のタスクトレイのモニターのアイコンが消えました。 回復するにはどうしたらよいでしょうか、どなたかご指導ください。 よろしくお願いいたします。 PC:デスクトップPC Win2000PRO