实现 VC 最小化到 托盘

大家经常看到 程序 最小化到 托盘 但用C怎么实现呢 本人 试下哈 可以实现的 ~·~

main.cpp 修改如下

#define WM_CLICKBIT (WM_USER + 1) //定义消息

HINSTANCE hApp;
NOTIFYICONDATA nid;

BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
       //BEGIN MESSAGE CRACK
       HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog);
       HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand);
       HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose);
       HANDLE_MSG(hWnd, WM_SYSCOMMAND, Main_OnSysCommand); //多了这条消息
      
       case WM_CLICKBIT:
   {
if(wParam == IDI_ICONAPP)
      {
      switch(lParam)
      {
          case WM_LBUTTONDBLCLK:
         ShowWindow(hWnd, SW_SHOWNORMAL);
         Shell_NotifyIcon(NIM_DELETE, &nid);
         SetWindowPos(hWnd, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
         break;
          default:
      ShowWindow(hWnd, SW_HIDE);
       break;
      }
      }
   }
   break;
   default:
   break;
}
return FALSE;
}

void ShowPlate(HWND hwnd) //最小化到托盘
{
   ZeroMemory(&nid, sizeof(NOTIFYICONDATA));
    nid.cbSize = (DWORD)sizeof(NOTIFYICONDATA);
    nid.hWnd = hwnd;
    nid.uID = IDI_ICONAPP;
    nid.uFlags = NIF_ICON|NIF_MESSAGE|NIF_TIP;
    nid.uCallbackMessage = WM_CLICKBIT; //自定义的消息名称
    nid.hIcon = LoadIcon(hApp, MAKEINTRESOURCE(IDI_ICONAPP));
    lstrcpy(nid.szTip, TEXT("Close QQ"));    //信息提示条
    Shell_NotifyIcon(NIM_ADD, &nid);    //在托盘区添加图标
}
void Main_OnSysCommand(HWND hwnd, UINT cmd, int x, int y)
{
if(SC_MINIMIZE == cmd)
{
   ShowPlate(hwnd);
   ShowWindow(hwnd, SW_HIDE);
   return;
}
else
{
   return;
}
}

main.h添加

extern HINSTANCE hApp;
void ShowPlate(HWND hwnd);
void Main_OnSysCommand(HWND hwnd, UINT cmd, int x, int y);

closeProcess.cpp(这是我自己创建的工程哈,这里是你自己创建的工程名)

int APIENTRY WinMain(HINSTANCE hInstance,
                  HINSTANCE hPrevInstance,
                  LPSTR     lpCmdLine,
                  int    nCmdShow)
{
    hApp = hInstance; //就多了这句
DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL, Main_Proc);
return(0);
}

目前 在C FREE(一个很好用的IDE 下载地址)编译通过

给大家一个 c free 源码下载 工程需要 c free才能打开 但其中的最小化到托盘\MinGW3.4.5\最小化到托盘.exe 是可以用的

等有时间在传个 VC的工程 给大家看看哈 若发现连接失效 请 给我留言 谢谢

VC工程已经实现 下载地址

转载于:https://www.cnblogs.com/syxchina/archive/2009/08/29/2197718.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/299804.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最难面试IT公司的测试题

逛网站时无意间看到一道测试题,看到这标题我吓到了(最难面试IT公司),本以为应该很难完成的,分析之后,花了半小时用python写出来了,各位朋友们也可以测试测试哦。不限语言。这是题目发布网址:https://www.ji…

leetcode中的状态机类型的题目

1 总结 一般是涉及到多个状态之间的转换,需要定义一个具有多个枚举值的变量,各个状态之间通过各种条件互相变化 2 LC57. 插入区间 2.1 解析 先是要确定新区间插入到哪一个位置(也有可能),插入后需要确定这个区间是否…

如何用Python进行数据探索,探索竞赛优胜方案?

全世界只有3.14 % 的人关注了 青少年数学之旅 AI这个词相信大家都非常熟悉,近几年来人工智能圈子格外热闹,光是AlphoGo就让大家对它刮目相看。 随着大数据时代信息科技的快速发展,各种各样的数据充斥着我们的生活。而我们又当如何有效利用数据…

联想ThinkPad笔记本广告向苹果MacBook Air开战

联想ThinkPad笔记本广告向苹果MacBook Air开战 [url]http://www.sina.com.cn[/url] 2008年03月24日 07:21 新浪科技联想ThinkPad X300笔记本广告,暗讽苹果MacBook AirMacbook Air最厚的地方仅有1.94cm,边缘仅0.4cm视频:ThinkPad X300对比Mac…

你真的知道Java同步锁何时释放?

在测试java多线程中有关 “生产者和消费者” 这个经典问题的时候,写代码测试的时候,思考到一些问题(所以还是要动手,实践才能储真知啊), synchronize 同步锁何时释放,何时获得?重新获…

基于 gRPC 和 .NET Core 的服务器流

原文:https://bit.ly/3lpz8Ll作者:Chandan Rauniyar翻译:精致码农-王亮早在 2019 年,我写过《用 Mapbox 绘制位置数据》一文,详细介绍了我如何通过简单的文件上传,用 Mapbox 绘制约 230 万个位置点。本文介…

jQuery入门[2]-选择器[转]

jQuery之所以令人爱不释手&#xff0c;在于其强大的选择器表达式令DOM操作优雅而艺术。jQuery的选择符支持id,tagName,css1-3 expressions,XPath&#xff0c;参见&#xff1a;http://docs.jquery.com/SelectorsDEMO:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tran…

nmap配合shell使用

命令需求&#xff1a;查看X.X.X.X/22网段所有开启5900端口的服务器&#xff0c;并以IP/host分行列出nmap -p 5900 XX.XX.XX.XX/22 |sed -e /Host is up/d -e /STATE/d -e/^$/d |awk {print $2,$5,$6} |sed -n /^open/{g;1!p;};h|sed -es/scan//g>file#nmap -p用于扫描开启59…

是个狠角色。。 | 今日最佳

全世界只有3.14 % 的人关注了青少年数学之旅&#xff08;图源洱海弥&#xff0c;侵权删&#xff09;

构建Windows Server 2008虚拟实验室

在阅读新闻稿时&#xff0c;有很多文章和指导&#xff0c;都有一些帮助&#xff0c;但却没有针对Windows Server 2008的手把手经验可供参考。对管理员来说&#xff0c;要熟悉这个服务器系统的最好方法是确定它的特性是如何给他们的Windows环境带来便利。 先前我描述了如何方便地…

eclipse配置tomcat 和JRE环境

配置JRE环境&#xff0c;通俗点讲就是添加一个不同版本的jdk window——preferences——java——installed jres 点击add添加 选择standard VM 择一个本机正确的jdk路径 name和下面lib加载都是系统自动完成的 选择好路径后 点 finish就ok了 配置tomcat window——preferen…

为什么我的 Func 如此之慢?

咨询区 Ricky G&#xff1a;我正在给项目做性能和代码优化&#xff0c;比如将重复的代码提炼成到一个可重用的方法中&#xff0c;为了能够达到可重用目的&#xff0c;我用 Func<T> 作为方法参数。public int Calculate(Func<int> expr){return expr();}当我用 Benc…

[转载MSDN]IIS 7.0中的Live Smooth Streaming -入门

IIS Live Smooth Streaming - 测试版是Internet 信使服务 (IIS) 7.0的一个扩展&#xff0c;它能提供流畅的视频流媒体&#xff0c;并且可以根据客户端的网络带宽和CPU的执行能力的改变&#xff0c;随时的调整视频质量。 IIS Live Smooth Streaming允许Microsoft Silverlight客户…

HDOJ 2196

思路&#xff1a;先选定1为树根&#xff0c;进行第一次深搜&#xff0c;很容易求出节点u到其子节点的最长距离和次长距离&#xff0c;求次长距离的目的是如果u的跟节点最长路径经过u则dp的时候就不能取其跟节点的最长距离&#xff0c;应该取其次长距离;然后进行第二次深搜&…

为啥饮料瓶大都是圆的,牛奶盒却是方的?

全世界只有3.14 % 的人关注了青少年数学之旅一提起喝饮料和牛奶你们是不是就来精神了但是喝了这么久的饮料你有没有想过一个问题为什么饮料瓶一般都是圆的&#xff1f;而牛奶盒却是方的&#xff1f;有的人可能会说饮料瓶要拿在手上当然是圆的舒服啊拿着一个方形的饮料瓶时间长了…

Docker最全教程之使用Docker搭建Java开发环境

前言 Java是一门面向对象的优秀编程语言&#xff0c;市场占有率极高&#xff0c;但是在容器化实践过程中&#xff0c;发现官方支持并不友好&#xff0c;同时与其他编程语言的基础镜像相比&#xff08;具体见各语言镜像比较&#xff09;&#xff0c;确实是非常臃肿。 Java [J…

删除sql下注册服务器

HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Server\80\Tools\SQLEW\Registered Servers X\SQL Server 组 删除你那个注册名 转载于:https://www.cnblogs.com/DonePuzzle/archive/2008/04/01/1163731.html

OrganicsDelivery总结

一、UserControl调用所在页面的其他内容&#xff08;代理实现&#xff09; UserControl代码 Codeusing System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.HtmlControls;…

面试官:Redis 内存数据满了,会宕机吗?

背景Redis 数据库内存数据满了&#xff0c;会宕机吗&#xff1f;答案是&#xff1a;不会让它出现存满的情况&#xff0c;在使用Redis的时候我们要配置Redis能使用的最大的内存大小&#xff0c;存到一定容量的时候还有Redis的内存淘汰策略呢&#xff0c;还有LRU算法进行淘汰&…

Android简单封装类似JQuery异步请求

在android开发中经常会使用异步请求数据&#xff0c;通常会使用handler或者AsyncTask去做&#xff0c;handler 配合message 使用起来比较麻烦&#xff0c;AsyncTask 线程池只允许128个线程工作&#xff0c;会有溢出的问题&#xff0c;&#xff08;当然一般情况不会有那么多线程…