vc中程序最小化到托盘(任务拦)的实现
来源:互联网 发布:同知是什么官 编辑:程序博客网 时间:2024/04/29 13:15
vc中有时候要实现程序最小化,实际上那是的隐藏.那么如何实现那,下面我将给出我自己的粗浅建议.
程序最小化到托盘,是把程序隐藏,并在托盘上加上响应的图标,对图标操作发送消息来实现的.下面给出做法供大家参考:
首先在.h文件里加入自定义消息:
#define WM_SHOWTASK (WM_USER + 0x100) //一般数值大于100
//{{AFX_MSG(CMPARTDlg)
中间加入:
afx_msg LRESULT onShowTask(WPARAM wParam,LPARAM lParam);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
DECLARE_MESSAGE_MAP()
在.cpp文件里加入如下代码:
BEGIN_MESSAGE_MAP(CMPARTDlg, CDialog)
//{{AFX_MSG_MAP(CMPARTDlg)
//{{AFX_MSG_MAP(CMPARTDlg)
中间加入消息声明:
ON_MESSAGE(WM_SHOWTASK,onShowTask)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
END_MESSAGE_MAP()
要实现最小话到托盘的函数里加入:
void CMyDlg::OnMenuHpanel()
{
{
NOTIFYICONDATA nid;
nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);
nid.hWnd=this->m_hWnd;
nid.uID=IDR_MAINFRAME;
nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP ;
nid.uCallbackMessage=WM_SHOWTASK; //自定义的消息名称
nid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));
nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);
nid.hWnd=this->m_hWnd;
nid.uID=IDR_MAINFRAME;
nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP ;
nid.uCallbackMessage=WM_SHOWTASK; //自定义的消息名称
nid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));
// IDR_MAINFRAME 是在托盘显示的图标
strcpy(nid.szTip,"计划任务提醒"); //信息提示条为“计划任务提醒”
Shell_NotifyIcon(NIM_ADD,&nid); //在托盘区添加图标
ShowWindow(SW_HIDE); //隐藏主窗口
strcpy(nid.szTip,"计划任务提醒"); //信息提示条为“计划任务提醒”
Shell_NotifyIcon(NIM_ADD,&nid); //在托盘区添加图标
ShowWindow(SW_HIDE); //隐藏主窗口
}
LRESULT CMPARTDlg::onShowTask(WPARAM wParam,LPARAM lParam)
//wParam接收的是图标的ID,而lParam接收的是鼠标的行为
{
if(wParam!=IDR_MAINFRAME)
return 1;
switch(lParam)
{
case WM_RBUTTONUP://右键起来时弹出快捷菜单,这里只有一个“关闭”
{
//wParam接收的是图标的ID,而lParam接收的是鼠标的行为
{
if(wParam!=IDR_MAINFRAME)
return 1;
switch(lParam)
{
case WM_RBUTTONUP://右键起来时弹出快捷菜单,这里只有一个“关闭”
{
//其中代码前面文章有可查
}
break;
case WM_LBUTTONDBLCLK://双击左键的处理
{
this->ShowWindow(SW_SHOW);//简单的显示主窗口完事儿
break;
case WM_LBUTTONDBLCLK://双击左键的处理
{
this->ShowWindow(SW_SHOW);//简单的显示主窗口完事儿
}
break;
}
return 0;
}
break;
}
return 0;
}
//应用程序退出时,主窗口销毁消息响应处理函数
void CMyDlg::OnDestroy()
{
CDialog::OnDestroy();
//程序退出,从托盘区删除图标
NOTIFYICONDATA nc;
nc.cbSize = sizeof(NOTIFYICONDATA);
nc.hWnd = m_hWnd;
nc.uID = IDC_NOTIFYICON;
Shell_NotifyIcon(NIM_DELETE, &nc);
}
void CMyDlg::OnDestroy()
{
CDialog::OnDestroy();
//程序退出,从托盘区删除图标
NOTIFYICONDATA nc;
nc.cbSize = sizeof(NOTIFYICONDATA);
nc.hWnd = m_hWnd;
nc.uID = IDC_NOTIFYICON;
Shell_NotifyIcon(NIM_DELETE, &nc);
}
- vc中程序最小化到托盘(任务拦)的实现
- vc中程序最小化到托盘(任务拦)的实现
- VC中最小化到托盘的实现
- VC实现将程序最小化到托盘
- VC中程序最小化到托盘
- VC最小化程序到托盘
- VC最小化程序到托盘
- VC程序最小化到托盘
- VC最小化程序到托盘
- VC最小化到托盘程序
- VC程序最小化到托盘
- VC最小化程序到托盘
- VC最小化到托盘程序
- VC++ 如何实现程序启动后最小化到托盘
- SWT 中实现最小化到托盘图标,并只能通过托盘的弹出菜单关闭程序
- SWT 中实现最小化到托盘图标,并只能通过托盘的弹出菜单关闭程序
- 在vc中将程序图标最小化到托盘中
- VC++中实现程序启动后隐藏窗口,最小化到托盘图标。
- 关于C# 的接口与CLASS 的用法!高手门教教我呀~!
- URL中的特殊字符
- .net 二级联动菜单
- vc自制时钟的实现
- Tomcat下配置Mysql数据库链接池(DBCP)
- vc中程序最小化到托盘(任务拦)的实现
- 基于角色管理的系统访问控制
- QT - QODBC数据库编程 --- Access 中二进制大对象的存取 (2)
- 在execute sql task里面的sql如何传进参数和传出参数.
- 最佳开源软件一览 (转)
- 权限角色管理模块
- 周六高三同学的北京小聚记~~
- .net 发送E_mail
- 微型蓝球赛问题