タスクトレイのアイコンについて


とろろ  2004-10-06 01:43:18  No: 11281  IP: [192.*.*.*]

WindowsXPにC++Builder5の開発環境では、ありますが、質問させてください。^^;
タスクトレイへのアイコンの登録の仕方、タスクトレイでのイベント処理は、以下のページを参照し、実装することができました。

http://www.borland.co.jp/tips/cbuilder/cb008/index.html

ただ、終了した場合、タスクトレイにアイコンが残ってしまい、マウスでポイントしにいくと、消えてくれます。

普通(?)のプログラムのように終了させるときちんとタスクトレイからアイコンが消えるようにしたいのですが、どのようにしたらうまくいくでしょうか?

どうじょ、よろしくお願い致します。

編集    削除
jok  2004-10-06 02:04:42  No: 11282  IP: [192.*.*.*]

> メインフォームのOnCloseイベントに下記の内容を記述します。 

のところをちゃんとやっていますか?

編集    削除
とろろ  2004-10-06 02:27:02  No: 11283  IP: [192.*.*.*]

OnCloseイベントには、ちゃんと以下のように書いてます。^^;
/------------------------------------------------------
NOTIFYICONDATA  icn;
          
          icn.cbSize = sizeof(NOTIFYICONDATA);
          icn.hWnd = Handle;
          icn.uID = 100;
          icn.uFlags = 0;
          Shell_NotifyIcon( NIM_DELETE, &icn );
/---------------------------------------------------------

編集    削除
jok  2004-10-06 02:37:28  No: 11284  IP: [192.*.*.*]

>OnCloseイベントには、ちゃんと以下のように書いてます。^^;

そうですか。同じことをDelphi6でやるとちゃんと消えますけど。
そして最後の Shell_NotifyIcon( NIM_DELETE, &icn ); をコメントアウトする
と、ご指摘のようになります。Button1 の OnClick イベントで同じコードを
試してみてください。

編集    削除
にしの  2004-10-06 02:39:36  No: 11285  IP: [192.*.*.*]

uIDを変更したりしてませんよね?
登録したときと同じIDを入れる必要があると思います。

編集    削除