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

王朝other·作者佚名  2008-06-01
窄屏简体版  字體: |||超大  

程序缩成图标!

/*参数说明: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;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航