- 浏览: 871045 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (341)
- Ajax (1)
- Asp.net (18)
- Java (5)
- Php (27)
- JavaScript (19)
- jQuery (12)
- 正则表达式 (4)
- SEO优化 (1)
- Windows 应用 (5)
- Flash (12)
- Asp (9)
- CSS (10)
- SQL Server (6)
- Flex (1)
- Ubuntu (0)
- mysql (34)
- PHP框架 (2)
- Apache (10)
- html (3)
- 网页切入 (1)
- Linux (33)
- vc++ (38)
- 友情链接 (0)
- firefox 插件 (4)
- SEO (1)
- Apache 压力测试 (1)
- imacros教程(一):imacros变量 (0)
- JS调用imacros所用到的函数 (0)
- imacros教程(三):调用csv文件 (1)
- imacros教程(二):JS调用imacros所用到的函数 (1)
- imacros 常用代码 (1)
- CSS最大宽度 (1)
- svn (1)
- WordPress (1)
- 网线的两种接法 (1)
- TP-LINK WR 系列无线路由器安全设置 (1)
- mysql talble is full ERR1114 (0)
- 解决mysql的内存表“table is full”错误 (1)
- linux 用户操作 (1)
- CentOS 挂载 ntfs 移动硬盘 (1)
- linux 储蓄设备操作 (1)
- Starting MySQL. ERROR! Manager of pid-file quit without updating file. (1)
- extmail 1.1 升级到 1.2 (1)
- extmail (0)
- emos (2)
- squid 3.0 (2)
- centos 6 minimal 安装 (1)
- linux实用命令详解 (1)
- win7 (1)
- php 字符串大小写转换 (1)
- 跟踪路由 tracert (1)
- css英文单词首字母添加样式 (1)
- jquery iframe 操作 (1)
- php 获取时间今天明天昨天时间戳 (1)
- php 上传限制 (1)
- ckeditor 配置 (1)
- flash 显示在 div 下 (1)
- flash + php 留言本乱码问题 (1)
- squid purge 出现 access denied 的解决方法 (1)
- delphi (1)
- 让delphi嵌入的WebBrowser无边框无滚动条 (1)
- delphi打开一个IE窗口 (1)
- delphi 获取鼠标当前位置的相对坐标 (1)
- delphi 获取可执行文件的当前路径 (1)
- delphi webbrowser 常用方法示例 (1)
- javascript 禁止鼠标右键... (1)
- delphi 播放gif 动画 (1)
- delphi弹出信息框大全 (1)
- Delphi中禁止WebBrowser右键的方法 (1)
- DELPHI 让程序只能运行一次 (1)
- Delphi XE2 破解补丁注册机下载使用教程 (1)
- Delphi RAD Studio XE2编译程序体积大的问题 (1)
- delphi 制作圆角窗口 (1)
- delphi 窗口 (1)
- delphi 窗体全透明,但窗体上的控件不透明 (1)
- delphi 窗口阴影 (1)
- delphi 获取任务栏高度 (1)
- delphi bsNone 之后任务栏右键无反应 (1)
- delphi 程序打开隐藏软件任务栏条 (0)
- delphi bsNone后的相关问题解决方法 (1)
- delphi bsNone 后显示边框 (1)
- delphi url编码操作 (1)
- delphi 调用exe文件 (1)
- delphi dll窗体的制作和调用 (1)
- delphi dll 调用窗体时的数据传递 (0)
- delphi 窗口显示在屏幕右下角 (1)
- 内网穿透&UDP打洞 (1)
- delphi idhttp post应用 (1)
- inno setup 开机启动 (1)
- inno setup 添加桌面快捷方式 (1)
- Delphi实现程序只运行一次并激活已打开的程序 (1)
- 解决 float point division by zero (1)
- Delphi 窗体显示在最前面,并获得焦点 (1)
- delphi 点击关闭按钮时隐藏窗口 (1)
- delphi 非客户区右键点击 (1)
- delphi真正可以截获WINDOWS关机消息的源码 (1)
- delphi utf8转码 (1)
最新评论
-
zj7243886:
非常感谢,这东西解决我的问题;谢谢你的分享
Linux 安装 jpeg-6b 错误 ./libtool 命令未找到 -
丶Sk.Mabon:
能让html也绕过吗。。机房限制很悲剧
绕过 <?PHP exit(’Access Denied’); ?> 限制 -
丶Sk.Mabon:
请教gzip.php 的写法。万分感谢!
apache 开启 gzip -
hyxj1220:
火狐中单纯的定义这样的样式,貌似不行,必须要让容器浮动
英文长文本换行CSS -
逆水寒龙:
太好了,正好用上,谢谢博主共享
Asp.net 将中文汉字转换成拼音首字和拼音全拼
MFC最小化到系统托盘
--《VC编程知识总结》之一
在VC++中,想实现将MFC最小化到系统托盘,需要调用NOTIFYICONDATA类,并注册相应的消息,以下详细讲解如何实现:
第一步,声明一个NOTIFYICONDATA类,也就是NOTIFYICONDATA NotifyIcon;该句可以放在Dlg类的声明中,作为Dlg类的一个成员;也可以放在Dlg类的实现中,作为全局变量来使用。
第二步,声明一个响应函数afx_msg void OnNotifyIcon(WPARAM wParam,LPARAM IParam);用于响应鼠标操作。将这个函数放入Dlg类的声明中,作为Dlg类的一个成员。
第三步,定义消息名称以消息号,并注册消息,该步很重要!我就是因为没有注册消息,导致调试了很久都找不到问题所在。该步都是在Dlg.cpp(Dlg的实现中)中操作。定义消息名称和消息号:#define WM_NC (WM_USER+1001),1001只是用于指定一个消息号,可以随便指定。注册则是在BEGIN_MESSAGE_MAP(Dlg,CDialog)和END_MESSAGE_MAP()之间添加ON_MESSAGE(WM_NC,OnNotifyIcon)。
线程就是用 ON_THREAD_MESSAGE(WM_NC,OnNotifyIcon)
第四步,在要将MFC最小化到系统托盘的函数中添加如下代码:
在MFC的::OnSysCommand(UINT nID, LPARAM lParam)
添加
if(nID==SC_MINIMIZE) {
NotifyIcon.cbSize=sizeof(NOTIFYICONDATA);
NotifyIcon.hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
NotifyIcon.hWnd=m_hWnd;
lstrcpy(NotifyIcon.szTip,"NotifyIcon Test");
NotifyIcon.uCallbackMessage=WM_NC;
NotifyIcon.uFlags=NIF_ICON | NIF_MESSAGE | NIF_TIP;
Shell_NotifyIcon(NIM_ADD,&NotifyIcon); //添加系统托盘图标
NotifyIcon.hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
NotifyIcon.hWnd=m_hWnd;
lstrcpy(NotifyIcon.szTip,"NotifyIcon Test");
NotifyIcon.uCallbackMessage=WM_NC;
NotifyIcon.uFlags=NIF_ICON | NIF_MESSAGE | NIF_TIP;
Shell_NotifyIcon(NIM_ADD,&NotifyIcon); //添加系统托盘图标
}//最小化到托盘的函数
有了上面的代码,当程序运行到含有如上代码的函数时就会在系统托盘处添加一个图标,想隐藏主对话框,就再添加一句ShowWindow(SW_HIDE);这样就实现了将MFC最小化到系统托盘。但还要添加点击托盘图标时响应鼠标的函数,也就是第二步中的函数OnNotifyIcon。
第五步,OnNotifyIcon函数,如下:
void CDlg::OnNotifyIcon(WPARAM wParam,LPARAM IParam)
{
if ((IParam == WM_LBUTTONDOWN) || (IParam == WM_RBUTTONDOWN))
{
ModifyStyleEx(0,WS_EX_TOPMOST);
ShowWindow(SW_SHOW);
//Shell_NotifyIcon(NIM_DELETE, &NotifyIcon);//删除系统托盘图标
}
}
{
if ((IParam == WM_LBUTTONDOWN) || (IParam == WM_RBUTTONDOWN))
{
ModifyStyleEx(0,WS_EX_TOPMOST);
ShowWindow(SW_SHOW);
//Shell_NotifyIcon(NIM_DELETE, &NotifyIcon);//删除系统托盘图标
}
}
以上函数写的很简单,因为我定义的是基于对话框的MFC,没有添加menu,所以只是实现了简单的点击托盘图标就弹出主对话框。对于右键点击托盘图标弹出小menu,然后选择操作,最好是建立工程的时候就选择基于菜单的MFC,这样会容易很多,详细的我自己还没有研究,就不乱讲了。对于上面函数中Shell_NotifyIcon(NIM_DELETE,&NotifyIcon)一句,是清除托盘图标,在这里可以没有,但在退出整个程序的时候一定要加上,不然程序退出了,托盘处还有一个图标,只有鼠标指到那里时系统才会发现是进程残留而清除,这种做法很不好!
发表评论
-
VC获取系统时间、程序运行时间
2011-03-28 20:26 1561VC获取系统时间、程序运行时间关键词: VC 系统时间 1 ... -
MFC CListCtrl 获取行信息
2011-03-28 17:43 2583int nItem = m_list_friend- ... -
VC CListCtrl 图标不显示的问题
2011-03-28 14:41 2528VC CListCtrl 图标不显示的问题 1。没有将C ... -
CImageList 使用指南
2011-03-27 22:05 12891.综述在MFC中CImageList类封装了图像列表控件的功 ... -
CDialog::OnInitDialog() ----转
2011-03-27 20:13 2050BOOL CmapfileDlg::OnInitDialog( ... -
MFC 添加对话框背景图片
2011-03-27 17:09 9746先载入一张图片,ID为ID ... -
MFC 给对话框添加背景色
2011-03-27 16:54 21381. 重载OnCtlColor (CDC* pD ... -
MFC 画线的几种方式
2011-03-24 22:07 17889一.画鼠标按下到弹起之间的直线 1.创建 CView 的私 ... -
关于UNICODE下SKIN++的使用
2011-03-21 17:43 1533SKIN++使用起来应该说是比较方便的。但,官方说法,只有 ... -
判断控件是否已经被创建
2011-03-20 20:08 1341// Resize the edit control cont ... -
MFC 获取对话框控件
2011-03-20 19:49 1323CButton* btn = (CButton*)Get ... -
MFC 限制对话框,窗口大小
2011-03-20 19:08 54741.在类的头文件中加入函数申明 (.h文件) ... -
PROGRESS控件(CProgressCtrl类)
2011-03-20 17:41 3309CProgressCtrl *lpctrlPr = (CP ... -
mfc 关闭窗口
2011-03-20 15:28 1363退出程序用 AfxGetMainWnd()->SendM ... -
edit 设置enable
2011-03-20 13:42 15201. As you can disable other c ... -
mfc radio button 设置默认选中
2011-03-19 17:45 10981我们假设有两个RADIO控件:IDC_RADIO_SINGLE ... -
picture control 载入图片
2011-03-19 17:21 1289HBITMAP hBitmap; CStatic *pSt ... -
SysLink 用法
2011-03-19 13:35 1462SysLink SysLink.SetWindowText( ... -
窗口破坏过程与Windows消息循环
2011-03-19 03:20 2014从用户单击关闭按钮( ... -
VC++ UDP通信程序
2011-03-08 19:05 4030UDP的服务器端:(UdpSrv.cpp) ...
相关推荐
MFC最小化至系统托盘源代码,开发工具为VS2010
VC 6.0 实现将对话框最小化到系统托盘,有代码和实现的所有详细步骤,能够让你很简单的时间最小化到系统托盘的需求,同时添加了右键点击系统托盘图标弹出菜单和左键双击托盘图标实现弹出对话框的功能。
MFC实现应用程序类似QQ最小化到系统托盘功能的源代码,实际软件项目开发时很有用。
vc mfc 最小化系统托盘 图标,MFC最小化到系统托盘总结
MFC窗体程序最小化启动,不显示在任务栏中,在右下角托盘中显示一个图标;左键单击后显示窗体,显示在屏幕右下角;右键单击后显示菜单:退出。实例通过VS2008下通过编译,正确运行。
MFC 基于对话框的程序 最小化到托盘的实现
mfc系统托盘实例(最小化到托盘,图标变化,托盘右键菜单等) 包括其他别的控件的实例 物有所值
一个系统托盘的开发实例,注释十分详细,VC6编译
“托盘”,在Windows系统界面中,指的就是下面任务条右侧,有系统时间等等的标志的那一部分。在程序最小化或挂起时,但有不希望占据任务栏的时候,就可以把程序放到托盘区。其实,托盘区的编程很简单
用vs2010 写的一个时钟,包含数字时钟、指针时钟和日历,点击每项的上部,可以自由移动。有托盘图标,可以在窗口头部或者托盘上右击弹出菜单。
该程序使用win32编程技术实现了托盘图标所涉及的各种功能,没有使用mfc。
MFC 下的基于SqlServer2000数据库,可以随意存取数据库里面的题目,里面的视频录像还未实现(请谅解),带有评分,试题录入,成绩查询,更换皮肤功能,最小化支持托盘功能,适合初学MFC。
自己写的智能关机 能够定时关机 重启注销等源代码 VC6.0 MFC 其中还有最小化到系统托盘 功能
vc实现像qq一样的系统托盘源代码,能够最小化到桌面右下角
我们知道QQ点关闭以后,软件并没有退出,而是最小化到了右下角,要退出程序,必须右键点击小企鹅图标,在弹出菜单里面点击<退出>才可以关闭QQ. 在vc里面可以实现类似QQ里面的右下角小企鹅系统托盘
语音教程 C++新手学习常用误区及其学习方法 类,构造函数和析构函数,类的指针详细演示 操作符重载,this,静态成员 简单介绍 ...C++最小化到系统托盘图标实例及代码 C++实现获取屏幕任意点的颜色 ·····
一个闹铃程序,VC 制作的可以显示托盘图标的闹钟程序,设定的时间到,会以弹出对话框MessageBox的形式发出警报提醒,将程序图标放入系统托盘,响应在托盘图标上的单击,屏蔽最大化(MFC Bug),将最小化重定向至隐藏...
(1)时钟界面中有时针,分针,秒针; (2)根据系统时间,各类指针能够正确的吧动态转动; (3)用户可以通过对话框重新设定时间,设定完毕后时针...(4)可最小化到系统托盘区,用户点击最小化图标能够恢复显示界面
5、最小化会隐藏到右下角托盘区,双击可恢复窗口;进入发送状态也会隐藏到托盘区,此时按Esc键(或者托盘右键点停止)可退出当前歌曲发送状态并恢复窗口 6、已知BUG: 不能和360安全卫士同时使用(没有病毒,因为360...