- 中查找“在任务栏上显示图标”更多相关内容
- 中查找“在任务栏上显示图标”更多相关内容
- ·上一篇文章:一个简单的浏览器
- ·下一篇文章:在应用程序中实现RAS拨号
在任务栏上显示图标
在任务栏上显示图标
阿伦工作室 邱理 Windows 95/Windows NT任务栏的右边是一状态区,Windows95/WindowsNT在其上显示时间和一些小图标,这些图标代表着特定的功能或程序,用鼠标单击、右击或双击这些图标,就会弹出功能菜单或程序窗口等。你也许想把自己的程序图标也放在任务栏的状态区上,很简单,VC++ 5.0提供了一个函数,让你很容易地实现该功能。 Shell_NotifyIcon()函数 该函数发送消息给系统在任务栏的状态区,增加、删除或修改图标。Shell_NotifyI con()有两个参数: 1. DWORD dwMessage 消息标志值,为以下三个中之一: NIM_ADD 在任务栏状态区增加图标 NIM_DELETE 从任务栏状态区删除图标 NIM_MODITY 修改任务栏状态区的图标 2. PNOTIFYICONDATA pnid 指向NOTIFYICONDATA结构的指针。NOTIFYICONDATA结构如下: typedef struct _NOTIFYICONDATA { // nid DWORD cbSize; // NOTIFYICONDATA 结构的大小 HWND hWnd; //接收回调消息的窗口句柄 UINT uID; //自定义的图标标志值 UINT uFlags; //标志后面的三个数据成员哪个有效, //可由NIF_ICON,NIF_MESSAGE和 NIF_TIP组合。 UINT uCallbackMessage; //回调消息 HICON hIcon; //图标句柄 char szTip[64]; //提示字符。当把鼠标移到任务栏 //状态区该图标上时,系统显示该字符 } NOTIFYICONDATA, *PNOTIFYICONDATA; 如何在任务栏状态区实现程序图标及其功能 1. 首先生成一个单文档的工程文件。 2. 在StdAfx.h 添加自定义的消息: //回调消息 #define MYWM_NOTIFYICON WM_USER+1 //在任务栏状态区显示图标的消息 #define MYWM_SHOWAPPICONIC WM_USER+2 3. 在MainFrm.h 里添加定义消息处理函数说明,该部分看起来如下: protected: //{{AFX_MSG(CMainFrame) afx_msg void OnSysCommand(UINT nID, LPARAM lParam); //手工加 afx_msg void OnMyIconNotify(WPARAM wParam, LPARAM lParam); //手工加 afx_msg void OnShowAppIconic(WPARAM wParam, LPARAM lParam); //手工加 afx_msg void OnClose(); //系统生成 //}}AFX_MSG DECLARE_MESSAGE_MAP() 另外,需在MainFrm.h定义一开关值,记录程序窗口是打开或关闭状态: BOOL boolWndHadShow; 4. 在MainFrm.cpp里实现消息映射和消息处理函数。消息映射部分看起来如下: BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) //{{AFX_MSG_MAP(CMainFrame) ON_MESSAGE(MYWM_NOTIFYICON, OnMyIconNotify) ON_MESSAGE(MYWM_SHOWAPPICONIC, OnShowAppIconic) ON_WM_SYSCOMMAND() ON_WM_CLOSE() //}}AFX_MSG_MAP END_MESSAGE_MAP() 消息处理及相关函数如下所示: //在任务栏状态区添加图标 BOOL MyTaskBarAddIcon(HWND hwnd, UINT uID, HICON hicon, LPSTR lpszTip) { BOOL res; NOTIFYICONDATA tnid; tnid.cbSize = sizeof(NOTIFYICONDATA); tnid.hWnd = hwnd; tnid.uID = uID; tnid.uFlags = NIF_ICON NIF_TIP NIF_MESSAGE; tnid.uCallbackMessage = MYWM_NOTIFYICON; tnid.hIcon = hicon; if (lpszTip) lstrcpyn(tnid.szTip, lpszTip, sizeof(tnid.szTip)); else tnid.szTip[0]=‘
Tags:
作者:佚名评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论