2024年4月1日发(作者:)

一,实现原理

1、最小化的原理:首先要将窗口隐藏,然后 在右下角绘制图标。

2、恢复的原理:将窗口显示,再将托盘中的图片删除。

二,程序实现

1、自定义消息WM_SHOWTASK: #define WM_SHOWTASK (WM_USER +1)

2、在MFC的::OnSysCommand(UINT nID, LPARAM lParam)函数体中增加一个命

令响应 if(nID==SC_MINIMIZE)

ToTray(); //最小化到托盘的函数

3、在消息映射中添加 ON_MESSAGE(WM_SHOWTASK,OnShowTask),其中

WM_SHOWTASK是消息名,

OnShowTask是自己定义的消息响应函数,后面有说明。

三,函数具体内容

1、最小化到托盘函数

void CMyDlg::ToTray()

{

NOTIFYICONDATA nid;

=(DWORD)sizeof(NOTIFYICONDATA);

=this->m_hWnd;

=IDR_MAINFRAME;

=NIF_ICON|NIF_MESSAGE|NIF_TIP ;

ackMessage=WM_SHOWTASK;//自定义的消息名称

=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINF

RAME));

strcpy(,"程序名称"); //信息提示条

Shell_NotifyIcon(NIM_ADD,&nid); //在托盘区添加图标

ShowWindow(SW_HIDE); //隐藏主窗口

}

2、恢复界面函数