解决explorer.exe出错导致任务栏重启后托盘图标丢失的BUG
explorer.exe出错导致任务栏重启后MFC程序自定义的托盘图标会丢失,解决方法如下
1.在stdafx.h文件或MainFrm.h文件定义消息WMEX_TASKBARCREATED:
const UINT WMEX_TASKBARCREATED = ::RegisterWindowMessage(TEXT("TaskbarCreated"));
2. 在MainFrm.h文件中,定义对应的消息函数OnRestartExplorer:
afx_msg LRESULT OnRestartExplorer(WPARAM wParam, LPARAM lParam);
3. 在MainFrm.cpp文件中定义消息映射:
ON_REGISTERED_MESSAGE(WMEX_TASKBARCREATED, OnRestartExplorer)
4. 在MainFrm.cpp文件中实现消息函数OnRestartExplorer:
LRESULT CMainframe::OnRestartExplorer(WPARAM wParam, LPARAM lParam)
{
ToTray(); //添加托盘图标的函数,调用Shell_NotifyIcon函数
return 1;
}
浙公网安备 33010602011771号