VC 制作系统托盘程序实现将窗口最小化到系统托盘

简介: VC 制作系统托盘程序实现将窗口最小化到系统托盘2008年01月11日 星期五 10:24前段时间因为要用到系统拖盘,所以研究了一下,在这里记录一下,免得以后忘了 ^_^先在类中定义一个结构变量NOTIFYICONDATA pnid;然后在OnInitDialog进行初始化    pnid.
VC 制作系统托盘程序实现将窗口最小化到系统托盘
2008年01月11日 星期五 10:24

前段时间因为要用到系统拖盘,所以研究了一下,在这里记录一下,免得以后忘了 ^_^
先在类中定义一个结构变量NOTIFYICONDATA pnid;然后在OnInitDialog进行初始化
    pnid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);//该结构体大小
    pnid.hWnd=m_hWnd;    //窗口句柄
    pnid.uID=(UINT)m_hIcon;      //图标句柄
    pnid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP ; //图标有效|自定义消息有效|鼠标指向显示文字有效

    pnid.uCallbackMessage=WM_MYMESSAGE;//自定义的消息名称
    pnid.hIcon=m_hIcon;         //图标句柄
    strcpy(pnid.szTip,"这是一个测试");//鼠标指向所显示的文字
实现最小化到系统拖盘,这定义一个窗口的OnSize事件
void CMyDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
// TODO: 在此处添加消息处理程序代码
if (nType==SIZE_MINIMIZED)//如果事件为最小化
    {
         Shell_NotifyIcon(NIM_ADD,&pnid);//在托盘区添加图标
         ShowWindow(SW_HIDE);//隐藏主窗口
    }
}


还原功能则先在CMyDlg.h做下列操作:
#define WM_MYMESSAGE WM_USER+101 //定义自定义消息,加的这个值一般都要大于100
afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam); //在类中定义消息响应函数

然后就在CMyDlg.app中定义消息映射,函数实现了。


BEGIN_MESSAGE_MAP(CMyDlg, CDialog)
END_MESSAGE_MAP() 之间查入消息映射
ON_MESSAGE(WM_MYMESSAGE,OnMyMessage)
然后建立OnMyMessage函数。
LRESULT CMyDlg::OnMyMessage(WPARAM wParam, LPARAM lParam){
    if( lParam == WM_LBUTTONDOWN )//如果在图标中单击左键则还原
    {             
          Shell_NotifyIcon(NIM_DELETE,&pnid);//删除托盘图标
          ShowWindow(SW_SHOWNORMAL);//显示主窗口
          this->SetWindowPos(&wndTopMost,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);//使窗口总是在最前面
    }
     return 0;
}

如果要更改显示图标则先更改pnid结构里的值,然后使用Shell_NotifyIcon(NIM_MODIFY,&pnid);来更改。

目录
相关文章
|
API 数据库
Activiti 流程资源文件下载及历史信息查询
Activiti 流程资源文件下载及历史信息查询
162 0
|
定位技术
GIS空间分析 网络分析4服务区分析
在本文中,你将学习到GIS空间分析中网络分析4服务区分析的详细过程
374 0
|
并行计算 数据可视化 算法
CMplot & rMVP | 全基因组曼哈顿图和QQ图轻松可视化!
`CMplot`和`rMVP`是R语言中的两个包,用于全基因组关联分析(GWAS)的数据可视化。`CMplot`专注于曼哈顿图和QQ图的绘制,支持多种图表类型,如常见的SNP密度图、环状曼哈顿图、矩阵图、单条染色体图和多重曼哈顿图等。`rMVP`不仅包含了`CMplot`的功能,还支持更复杂的GWAS方法,如线性/混合线性模型和基因组选择算法,优化了内存管理和计算效率,特别适合大规模数据集。此外,它还提供PCA图和柱状图。两者都提供了丰富的参数定制图表。
998 1
CMplot & rMVP | 全基因组曼哈顿图和QQ图轻松可视化!
|
NoSQL Java MongoDB
SpringBoot中MongoDB的那些骚操作用法
MongoDB作为一种NoSQL数据库,在不需要传统SQL数据库的表格结构的情况下,提供了灵活的数据存储方案。在Spring Boot中可以通过官方SDK、Spring JPA或MongoTemplate等方式集成MongoDB。文章重点介绍了Spring Data MongoDB提供的注解功能,例如`@Id`、`@Document`和`@Field`等,这些注解简化了Java对象到MongoDB文档的映射。此外,文中还讨论了MongoTemplate监听器的使用,包括设置主键值和日志记录等高级特性。
483 0
SpringBoot中MongoDB的那些骚操作用法
|
Cloud Native IDE Java
阿里巴巴正式开源云原生应用脚手架
12 月 3 日,微服务 x 容器开源开发者 Meetup 上海站上,阿里云智能技术专家,云原生应用脚手架项目负责人良名宣布阿里巴巴云原生应用脚手架项目正式开源,并在现场做了相关内容介绍。
806 111
阿里巴巴正式开源云原生应用脚手架
|
SQL 分布式计算 测试技术
从 Clickhouse 到阿里云数据库 SelectDB 版内核 Apache Doris:有赞业务场景下性能测试与迁移验证
从 Clickhouse 到阿里云数据库 SelectDB 版内核 Apache Doris 迁移实践:有赞查询提速近 10 倍,OLAP 分析更实时高效!
2236 2
从 Clickhouse 到阿里云数据库 SelectDB 版内核 Apache Doris:有赞业务场景下性能测试与迁移验证
|
设计模式 安全 Java
设计模式-单例 Singleton
设计模式-单例 Singleton
74 1
|
存储 监控 Linux
linux系统应用中select函数与poll函数详解
linux系统应用中select函数与poll函数详解
168 0
|
SQL 安全 算法
Web 应用防火墙 -- 规则防护
4.4.2 白名单加白 基于请求特征对误报流量加白, 加白后的流量会被 WAF bypass,从而解决误报问题。
303 0