网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
VC++任务栏图标的实现
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
目前,许多应用软件都实现了WINDOW任务栏提示区图标,如金山词霸、超级解霸
等,这不仅增强了软件的特色,更方便了用户的使用。本文将介绍一个封装好的
类,用VC++来实现这项功能,希望对读者有所帮助。
一、一个简单的直接引用的方法:
我们可以使用直接引用WIN32 API函数的方法实现任务栏提示区图标。
1、定义一个NOTIFYICONDATA数据结构,初始化各数据项。其结构详见在线帮助。
2、使用WIN32 API函数Shell_NotifyIcon实现任务栏提示区图标。函数原形如下:
WINSHELLAPI BOOL WINAPI Shell_NotifyIcon(DWORD dwMessage,//消息类型
PNOTIFYICONDATA pnid //指向NOTIFYICONDATA结构的指针
);
消息类型包括:NIM_ADD 增加图标到任务栏;
NIM_DELETE 从任务栏删除图标;
NIM_MODIFY 修改任务栏图标;
二、一个更好的面对对象的方法:
为了使使用更加方便、合理,更符合面对对象的处理方法,我们应当封装一个类
(CSystemIcon),由此类实现任务栏提示区图标。
1、由CObject类派生出CsystemIcon类。
2、构造下列函数:
LRESULT OnIconNotification(WPARAM wID,LPARAM lEvent) //自定义消息处理函数
void DeleteIcon() //删除图标
void HideIcon() //隐藏图标
void ShowIcon() //显示图标
BOOL SetTooltipText(LPCTSTR pszTip) //设置提示文本
BOOL SetTooltipText(UINT nID)
CString GetTooltipText() const //得到提示文本
BOOL SetNotificationWnd(CWnd* pWnd) //设置通知窗口
CWnd* GetNotificationWnd() const //得到通知窗口
HICON GetIcon() const //得到图标
BOOL SetIcon(HICON hIcon) //设置图标
BOOL SetIcon(LPCTSTR lpszIconName)
BOOL SetIcon(UINT nIDResource)
BOOL SetStandardIcon(LPCTSTR lpIconName) //设置系统标准图标
BOOL SetStandardIcon(UINT nIDResource)
3、生成的CsystemIcon类详见下列源文件:
a、CsystemIcon类.H头文件:
/////////////////////////////////////////////////////////////////////////////
// SystemIcon.h : header file
//
#ifndef _INCLUDED_SYSTEMICON_H_
#define _INCLUDED_SYSTEMICON_H_
/////////////////////////////////////////////////////////////////////////////
// CSystemIcon window
class CSystemIcon : public CObject
// Construction/destruction
public:
CSystemIcon();
CSystemIcon(CWnd* pWnd, UINT uCallbackMessage, LPCTSTR szTip, HICON icon, UINT uID);
virtual ~CSystemIcon();
// Operations
public:
BOOL Enabled() { return m_bEnabled; }
BOOL Visible() { return !m_bHidden; }
//创建系统图标
Create(CWnd* pWnd, UINT uCallbackMessage, LPCTSTR szTip, HICON icon, UINT uID);
//关于提示文本
BOOL SetTooltipText(LPCTSTR pszTooltipText);
BOOL SetTooltipText(UINT nID);
CString GetTooltipText() const;
//关于图标
BOOL SetIcon(HICON hIcon);
BOOL SetIcon(LPCTSTR lpIconName);
BOOL SetIcon(UINT nIDResource);
BOOL SetStandardIcon(LPCTSTR lpIconName);
BOOL SetStandardIcon(UINT nIDResource);
HICON GetIcon() const;
void HideIcon();
void ShowIcon();
void DeleteIcon();
//关于通知窗口
BOOL SetNotificationWnd(CWnd* pNotifyWnd);
CWnd* GetNotificationWnd() const;
//自定义消息处理函数
virtual LRESULT OnIconNotification(WPARAM uID, LPARAM lEvent);
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CSystemIcon)
//}}AFX_VIRTUAL
// Implementation
protected:
BOOL m_bEnabled; //是否支持图标
BOOL m_bHidden; //是否隐藏图标
NOTIFYICONDATA m_tnd; //数据结构,请参
  • 下一篇资讯: VC自定义对话框背景
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号