プログラミングのメモ帳(C/C++/HSP)

日々のプログラミングで気づいた点や小技集を紹介します。(Windows 10/XP/Vista、VC2017、HSP)

タスクトレイ・アイコンの削除

2007年09月12日 15時15分55秒 | タスクバー関連

タスクトレイのアイコンを削除するにはShell_NotifyIcon()関数を使います。
この関数の第一引数にNIM_DELETEを指定して、第二引数にNOTIFYICONDATA構造体へのポインタを渡します。
なおNOTIFYICONDATA構造体にはいろいろと情報をセットしてから、Shell_NotifyIcon()関数を実行します。(戻る)

プロトタイプ宣言

BOOL Shell_NotifyIcon(
  DWORD dwMessage,        // 送信メッセージ
  PNOTIFYICONDATA lpData  // NOTIFYICONDATA 構造体
);

構造体

typedef struct _NOTIFYICONDATA {
  DWORD cbSize;             // この構造体のサイズ
  HWND   hWnd;              // ウインドウ・ハンドル
  UINT   uID;               // アイコンの識別コード
  UINT   uFlags;            // 有効メンバのスイッチ
  UINT   uCallbackMessage;  // 通知するメッセージ
  HICON  hIcon;             // アイコン・ハンドル
  TCHAR szTip[ 64 ];        // チップヘルプの文字列
} NOTIFYICONDATA, *PNOTIFYICONDATA;

[注意]
この構造体はバージョンによってかなりメンバ変数が追加・変更されています。
上記の構造体はバージョンに影響されない共通メンバの部分のみです。

サンプル

// 複数のアイコンを識別するためのID定数
#define ID_TRAYICON  (1)

// タスクトレイのマウスメッセージの定数
#define WM_TASKTRAY  (WM_APP + 1)

// 構造体の宣言(初期化)
NOTIFYICONDATA nid = { 0 };

// 構造体メンバの設定
nid.cbSize = sizeof( NOTIFYICONDATA );
nid.hWnd   = hWnd;           // ウインドウ・ハンドル
nid.uID    = ID_TRAYICON;    // アイコン識別子の定数

// アイコンの削除
Shell_NotifyIcon( NIM_DELETE, &nid );
  • hWndに関連付けるウインドウ・ハンドルを指定します。
  • 1つのアプリケーションで複数のタスクトレイのアイコンを使いたい場合には ID_TRAYICON の定数で振り分けます。
  • このアイコン識別子の値を変えれば、複数のアイコンを削除できます。
  • 1つの場合は固定値でもいいでしょう。

関連記事



コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« タスクトレイ・アイコンの追加 | トップ | タスクトレイ・アイコンの変更 »
最新の画像もっと見る

コメントを投稿

タスクバー関連」カテゴリの最新記事