龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

让程序在前端显示和最小化时在系统栏里

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
程序缩成图标! /*参数说明:hWnd,不用多说了吧? uId,图标排在系统栏中的位置,设为0即可 hIcon,图标 s,鼠标移到图标上要显示的话 */ /*注重:你必须自定义一个窗口消息MYWM_ICON, #define

  程序缩成图标!

  

/*参数说明:hWnd,不用多说了吧?

  

uId,图标排在系统栏中的位置,设为0即可

  

hIcon,图标

  

s,鼠标移到图标上要显示的话

  

*/

  

/*注重:你必须自定义一个窗口消息MYWM_ICON,

  

#define MYWM_ICON (WM_APP+100)

  

在窗口循环中响应该消息:

  

case MYWM_ICON:

  

switch(lParam)

  

{

  

case WM_LBUTTONDOWN:

  

case WM_RBUTTONDOWN:

  

}

  

以响应鼠标在该程序图标上的击键动作。

  

假如你想让程序只以图标方式放在系统栏,可以定义窗口属性为WS_EX_TOOLWINDOW或POPUP之类

  

*/

  

void PutToTaskBar(HWND hWnd,UINT uId,HICON hIcon,LPCTSTR s)

  

{

  

TrayMessage(hWnd, NIM_ADD, uId,NULL, s);

  

TrayMessage(hWnd, NIM_MODIFY, uId,hIcon, s);

  

}

  

  

BOOL TrayMessage(HWND hDlg, DWord dwMessage, UINT uID, HICON hIcon, LPCTSTR lpszTip)

  

{

  

BOOL res;

  

//char szVTip[64];

  

NOTIFYICONDATA tnd;

  

tnd.cbSize = sizeof(NOTIFYICONDATA);

  

tnd.hWnd = hDlg;

  

tnd.uID = uID;

  

tnd.uFlags = NIF_MESSAGENIF_ICONNIF_TIP;

  

tnd.UCallbackMessage = MYWM_ICON;

  

tnd.hIcon = hIcon;

  

wsprintf(tnd.szTip,lpszTip);

  

res = Shell_NotifyIcon(dwMessage, &tnd);

  

if (hIcon)

  

DestroyIcon(hIcon);

  

return res;

  

}

  

精彩图集

赞助商链接