### vc++托盘类专题:第2部分(说明) #### 概述 在Windows应用程序开发过程中,系统托盘图标(也称作通知区域图标)是一个常见的功能,它可以帮助用户快速访问程序的功能或状态。本篇内容将详细介绍如何使用Visual C++(VC++)创建和管理托盘图标。 #### 创建托盘图标 为了创建一个托盘图标,你需要调用以下的shell函数: ```cpp BOOL Shell_NotifyIcon(DWORD dwMessage, PNOTIFYICONDATA pnid); ``` 其中`dwMessage`参数指定了要执行的操作——`NIM_ADD`、`NIM_DELETE`、`NIM_MODIFY`分别用于添加、删除和修改托盘图标。`pnid`参数则用于自定义托盘图标、创建、删除以及获取托盘图标的有关数据。(更多关于`NOTIFYICONDATA`结构的信息,请参考MSDN文档。) #### 创建应用程序 1. **创建项目**:创建一个新的VC++对话框基础项目。在这个示例中,我们将这个项目命名为`MyTray`,它将包含`CMyTrayApp`和`CMyTrayDlg`这两个类。 2. **下载源代码**:下载并解压`DialogTray`源代码到项目的根目录。 3. **添加类到项目**:从菜单栏选择`Project -> Add To Project`,然后选择`Files`选项,接着选中`TrayDialog.h`和`TrayDialog.cpp`文件。这将为项目添加一个名为`CTrayDialog`的新类。 4. **替换基类**:将`CMyTrayDlg`的基类从`CDialog`更改为`CTrayDialog`: ```cpp #include "TrayDialog.h" class CMyTrayDlg : public CTrayDialog ``` 5. **修改构造函数**:将`CMyTrayDlg`类中的`CDialog`构造函数替换为`CTrayDialog`: ```cpp CMyTrayDlg::CMyTrayDlg(CWnd* pParent /*= NULL*/) : CTrayDialog(CMyTrayDlg::IDD, pParent) ``` 6. **创建菜单资源**:创建一个菜单资源,并将其命名为`IDR_MENU1`。 7. **初始化托盘图标**:在`InitDialog`成员函数中添加以下代码: ```cpp TraySetIcon(IDR_MAINFRAME); TraySetToolTip("ToolTip for tray icon"); TraySetMenu(IDR_MENU1); ``` 8. **显示托盘图标**:为了让托盘图标始终显示,在`CMyTrayDlg.cpp`文件的`InitDialog()`函数中加入`TrayShow()`语句,并通过调用`TraySetMinimizeToTray(FALSE)`来禁用最小化到托盘的功能。 9. **编译运行应用**:构建并运行应用程序。 #### 处理托盘事件 托盘图标的事件可以通过以下虚拟函数捕获: - `OnTrayLButtonDown(CPoint pt);`:托盘图标被左键点击时触发。 - `OnTrayLButtonDblClk(CPoint pt);`:托盘图标被左键双击时触发。 - `OnTrayRButtonDown(CPoint pt);`:托盘图标被右键点击时触发。 - `OnTrayRButtonDblClk(CPoint pt);`:托盘图标被右键双击时触发。 - `OnTrayMouseMove(CPoint pt);`:鼠标在托盘图标上移动时触发。 这些函数可以自由扩展,以增加更多的事件处理或者改进现有功能。 #### 小结 通过上述步骤,我们可以轻松地在VC++应用程序中实现托盘图标的创建与管理。此外,还可以利用类向导来添加托盘菜单项处理程序,使得托盘图标更加实用和灵活。对于需要在后台持续运行的应用程序来说,这是一个非常有用的特性。























To create a Tray Icon, you need to call the following shell function: -
Collapse
BOOL Shell_NotifyIcon( DWORD dwMessage, PNOTIFYICONDATA pnid );
The dwMessage parameter specifies the action to be taken - NIM_ADD, NIM_DELETE, NIM_MODIFY adds, deletes and modifies tray icons respectively.
The pnid parameter is used to customize, create, delete and obtain data from the Tray Icon. (See the MSDN Library for more details about this structure.)
Creating The Application
1. Create a new VC++ dialog based project. For this example, I will call this project MyTray which will contain the CMyTrayApp and CMyTrayDlg classes.
2. Download and extract the DialogTray source code to the root of the project folder
3. From the Project->Add To Project menu, select Files and then select TrayDialog.h and TrayDialog.cpp. This will add a new class to your project named CTrayDialog.
4. Replace the CMyTrayDlg base class with CTrayDialog.
Collapse
class CMyTrayDlg : public CDialog
becomes
Collapse
#include "TrayDialog.h"
class CMyTrayDlg : public CTrayDialog
5. Replace the other occurrences of CDialog in the MyTrayDlg.cpp file as follows :-
Collapse


- 粉丝: 8
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 算法分析中的几个经典例子.pdf
- 周南良电子商务实训总结.docx
- 发电机氢气系统安全运行分析.doc
- 北邮人工智能小测验.doc
- 网络营销之QQ群营销的十大技巧.doc
- 云计算相关及计划书.doc
- 药神软件操作规程.doc
- 最新网络营销策划书范文------.pdf
- 机房建设工程及机房综合布线项目设计方案样本.doc
- go-view-Typescript资源
- 工程项目管理知识点及名词解释和简答题答案.doc
- 网站的管理和维护.doc
- 麦包包电子商务战略规划.pptx
- 基于单片机的智能垃圾桶的设计.doc
- 网络环境下的协作学习的理论与应用.ppt
- 中国项目管理师国家职业标准考前培训沟通管理(pp.ppt


