程序缩成图标!
/*参数说明: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_message|nif_icon|nif_tip; tnd.ucallbackmessage = mywm_icon; tnd.hicon = hicon; wsprintf(tnd.sztip,lpsztip); res = shell_notifyicon(dwmessage, &tnd); if (hicon) destroyicon(hicon); return res; } |