推荐一个简单的托盘类

有的网友开发了自己的托盘类,实现起来略微烦琐。在这里我向大家推荐一个实现简单而十分有效的托盘类(是我在一本书中学来的)。

1、把TrayIcon.cpp和TrayIcon.cpp拷贝到你的项目目录,并添加到项目中。

2、在DemoDlg.h中加入#include “TrayIcon.h”

3、通过类向导向类CDemoDlg添加成员变量CTrayIcon m_CTrayIcon;

4、建立菜单资源,使其ID为:IDR_DEMO,设计菜单:

向demo1和exit添加事件处理程序:

void CDemoDlg::OnFileDemo1()
{
  ShowWindow(SW_SHOW);
  m_TrayIcon.RemoveIcon();
}
  
void CDemoDlg::OnFileExit()
{
  m_TrayIcon.RemoveIcon();
  OnCancel();
}

5、在DemoDlg.cpp中自定义消息 #define WM_ICON_NOTIFY WM_USER+10,并在声明消息处声明消息处理函数:

BEGIN_MESSAGE_MAP(CDemoDlg, CDialog)
  ......
  ON_MESSAGE(WM_ICON_NOTIFY, OnTrayNotification)
  ……
END_MESSAGE_MAP()

在类CDemoDlg中增加成员函数:

LRESULT OnTrayNotification(WPARAM wParam,LPARAM lParam);

实现部分:

LRESULT CDemoDlg::OnTrayNotification(WPARAM wParam,LPARAM lParam)
{
  return m_TrayIcon.OnTrayNotification(wParam,lParam);
}

6、在对话框添加“开始”按扭,并双击“开始”按扭编辑处理程序:

void CDemoDlg::OnBnClickedButton1()
{
  m_TrayIcon.Create(this,WM_ICON_NOTIFY,"鼠标指向时显示",m_hIcon,IDR_DEMO); //构造
  ShowWindow(SW_HIDE); //隐藏窗口
}

7、可以灵活使用其它类成员函数。如:SetIcon改变图标,可以通过Timer消息实现托盘图标动画效果。

8、删除托盘图标:m_TrayIcon.RemoveIcon();

本文配套源码

时间: 2024-09-17 04:05:35

推荐一个简单的托盘类的相关文章

推荐一个简单、轻量、功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentScheduler

原文:推荐一个简单.轻量.功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentScheduler 在C#WINFORM或者是ASP.NET的WEB应用程序中,根据各种定时任务的需求,比如:每天的数据统计,每小时刷新系统缓存等等,这个时候我们得应用到定时器这个东东. .NET Framework有自带的timer,但这个类只能完成一些简单的定时操作,比如间隔多久执行什么操作.遇到一些复杂的定时任务,如从当前时间开始,多少时间后间隔重复执行,timer类处理起来就相对困难了.经过多

介绍一个简单的JavaScript类框架

  这篇文章主要介绍了一个简单的JavaScript类框架,有助于初学者理解JS类的创建与继承,需要的朋友可以参考下 在写work-in-progress JavaScript book一书时,对于javascript继承体系,我花费了相当的时间,并在该过程中研究了各种不同的模拟经典类继承的方案.这些技术方案中,我最为推崇的是base2与Prototype的实现. 从这些方案中,应该能提炼出一个具有其思想内涵的框架,该框架须具有简单.可重用.易于理解并无依赖等特点,其中简单性与可用性是重点.以下

【4】实现一个简单的String类

题目:给定一个String类的类声明,要求实现类的函数体 类声明如下 class String{ public: String(const char *str = NULL); String(const String &another); ~String(void); String& operator=(const String &rhs); char* Get(void)const; private: char *m_data; }; 类的实现如下 //实现简单的String类

介绍一个简单的JavaScript类框架_基础知识

 在写work-in-progress JavaScript book一书时,对于javascript继承体系,我花费了相当的时间,并在该过程中研究了各种不同的模拟经典类继承的方案.这些技术方案中,我最为推崇的是base2与Prototype的实现. 从这些方案中,应该能提炼出一个具有其思想内涵的框架,该框架须具有简单.可重用.易于理解并无依赖等特点,其中简单性与可用性是重点.以下是使用示例:   var Person = Class. extend ( { init: function (is

问一个简单的DBhelper类使用问题

问题描述 usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Configuration;usingSystem.Data.SqlClient;usingSystem.Data;namespaceDAL{publicstaticclassDBHlper{///封装的一个ConnectionprivatestaticSqlConnectionconnection;publicstaticSqlConnec

一个简单的javascript类定义例子_js面向对象

复制代码 代码如下: <script> //定义一个javascript类 function JsClass(privateParam/* */,publicParam){//构造函数 var priMember = privateParam; //私有变量 this.pubMember = publicParam; //公共变量 //定义私有方法 function priMethod(){ return "priMethod()"; } //定义特权方法 //特权方法可以

php编写一个简单的路由类_php技巧

类代码: 复制代码 代码如下: <?php class Router { public function getRouter($types = 1) { if ( isset($_SERVER['PATH_INFO']) ) { $query_string = substr(str_replace(array('.html','.htm', '.asp', '//'), '',$_SERVER['PATH_INFO']),1); } else { $query_string = str_repl

一个简单php日志类

日志类如下,news目录为当前php文档根目录下子目录. <?phpif( ! defined('BASEPATH') ) {    define ('BASEPATH', $_SERVER['DOCUMENT_ROOT'].'/news/');}require_once BASEPATH.'config/config.inc.php';require_once BASEPATH.'config/constants.php';define ("LOG_PATH", $config

推荐一个简单有趣的站长推广动画

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 这是一个很有趣的,用批处理做的动画. 今天在红黑发现的, 211.html">觉得很有意思可以用来观赏对网站推广还是可以的!下面小小修改了原来的! 以下为引用的内容: @echo offsetlocal enabledelayedexpansionset fu= ^/ ^\set "kong=