右下隅にウィンドウを最小化

             トレイアイコンの描画機能:

-------------------------------------------------

WINSHELLAPI BOOL WINAPI Shell_NotifyIcon(

DWORD dwMessage、

PNOTIFYICONDATA PNID

);

最初のパラメータは、システムにメッセージを配信する責任があります

  NIM_ADD

  トレイ領域にアイコンを追加します。このとき、第2パラメータ lpdataは指摘NOTIFYICONDATA 構造体のhWndのUIDメンバーを、アイコン、この操作後に再び使用Shell_NotifyIconのアイコンを示すために使用されます。

  NIM_DELETE

  アイコントレイエリアを削除します。この第二の引数で NOTIFYICONDATA構造のhWnd部材とUIDにlpdata点を削除するには、このアイコンをマークするために使用されます。

  NIM_MODIFY

  トレイアイコン領域を変更します。このとき、第2パラメータ NOTIFYICONDATAのlpdata構造は、hWndをとUIDメンバーによって指さ指定されたアイコン用に変更する必要があります。

 

 

2番目のパラメータはある NOTIFYIONDATA構造!

  typedefは構造体の_NOTIFYICONDATA {

  DWORD cbSizeの; //サイズ構造

  HWND hWndは; //ハンドル

  UINTユビキタスID;

  UINT uFlags; //このメンバは、正確にどの法律上のデータの他のメンバーを(つまり、その仕事のメンバーである)を示しています。

  UINT uCallbackMessage; //アプリケーション定義のメッセージラベル。

  HICON HICON;

  TCHAR szTip [64]。

  DWORD dwState;

  DWORD dwStateMask;

  TCHAR szInfo [256]。

  組合{

  UINT uTimeout;

  UINT uVersion;

  }。

================================================

          具体的な使用方法

================================================

1.(ファイルの先頭にヘッダで定義することができる)マークメッセージを定義

#define MYWM_NOTIFYICONのWM_USER + 5

 

2.ボタンの応答メッセージ

空CMyPlayerDlg :: CreateNotifyIcon()

{

 NOTIFYICONDATA ND;

//割り当て-----

 nd.cbSize =はsizeof(NOTIFYICONDATA)。

 nd.hWnd = m_hWndを。

 nd.uID = IDI_ICON。

 nd.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;

 nd.uCallbackMessage = MYWM_NOTIFYICON; //メッセージ旗

 nd.hIcon = m_hIcon。

 strcpyの(nd.szTip、 "スター・メロディ")。

 Shell_NotifyIcon(NIM_ADD、&ND);

}

 

3.OnInitDialog()関数呼び出しCreateNotifyIcon()

BOOL CMyPlayerDlg :: OnInitDialogを()

{

     ....

 

  CreateNotifyIcon()

    ....

}

 

 

4.非表示のウィンドウメッセージに応答してボタンを追加します。

CMyPlayerDlg :: OnBtnHideを無効()

{

 // TODO:ここにコントロール通知ハンドラコードを追加します。

 ShowWindow(SW_HIDE)。

}

 

================================================== ============

                 マウスクリックトレイアイコンメッセージに応答

================================================== ============

5.ヘッダファイル内のメッセージ機能を追加

// {{AFX_MSG(CMyPlayerDlg)

 AFX_MSGボイドOnNotifyIcon(WPARAM wParamに、LPARAM lParamに)。

//}} AFX_MSG

 

6.ソース・ファイルにメッセージマップを追加します。

BEGIN_MESSAGE_MAP(CMyPlayerDlg、CDialogの)

 // {{AFX_MSG_MAP(CMyPlayerDlg)

 ON_MESSAGE(MYWM_NOTIFYICON、OnNotifyIcon)

 //}} AFX_MSG_MAP

END_MESSAGE_MAP()

 

7.特定のメッセージ応答関数の内容を追加します。

空CMyPlayerDlg :: OnNotifyIcon(WPARAM wParamに、LPARAM lParamに)

{

 もし(lParamに== WM_LBUTTONDBLCLK)

 {

  UINT MODE;

  ?MODE = IsWindowVisible()SW_HIDE:SW_SHOW; //ウィンドウ表示するかどうかを判断します

  ShowWindow(MODE)。

 }

 

}

 

おすすめ

転載: www.cnblogs.com/blogpro/p/11426923.html