2012-04-24 19:10:36|?次阅读|上传:wustguangh【已有?条评论】发表评论
关键词:C/C++, 界面设计, MFC|来源:唯设编程网
步骤五:添加一个函数实现托盘的实现
void CCD_ROM_OPENDlg::OnBnClickedButton1()
{
if (!isNotify)
{
nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);
nid.hWnd=this->m_hWnd;
nid.uID=IDR_MAINFRAME;
nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP|NIF_INFO;
//自定义的消息名称,注意:这里的消息是用户自定义消息
nid.uCallbackMessage=WM_SHOWTASK;
nid.hIcon=LoadIcon(AfxGetInstanceHandle()
,MAKEINTRESOURCE(IDR_MAINFRAME));
//信息提示条为"计划任务提醒"
wcscpy_s(nid.szTip,_T("VC系统托盘程序"));
wcscpy_s(nid.szInfo,_T("标题"));
wcscpy_s(nid.szInfoTitle,_T("内容"));
nid.dwInfoFlags=NIIF_INFO;
nid.uTimeout=5000;
//在托盘区添加图标
Shell_NotifyIcon(NIM_ADD,&nid);
}
//可以缓慢消失窗口
//AnimateWindow(1000,AW_HIDE|AW_BLEND);
// KillTimer(0);
ShowWindow(SW_HIDE);//隐藏主窗口
}
步骤六:将对话框的关闭按钮变成隐藏界面的效果,即要关闭按钮不会关闭程序,在OnSysCommand ()函数里面
void CCD_ROM_OPENDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
//触发关闭按钮
else if ((nID & 0xFFF0) == SC_CLOSE)
{
//OnClose(); //不进行关闭
OnBnClickedButton1(); //开启托盘
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
步骤七:销毁。在程序关闭的时候,要记得销毁托盘图标,重载OnDestroy ()函数
void CCD_ROM_OPENDlg::OnDestroy()
{
CDialog::OnDestroy();
Shell_NotifyIcon(NIM_DELETE,&nid);
}
好了,基于VC的系统托盘程序便完成了并且该程序支持以气泡的方式弹出提示信息,最终实现的效果如下:

本文转自:http://blog.csdn.net/akof1314/article/details/5121911