3,882
社区成员
发帖
与我相关
我的任务
分享
CImageList m_list; // 用于存储头像信息,并且0图标为全透明的一个头像
NOTIFYICONDATA m_pnid; // 托盘
int CXX::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (__super::OnCreate(lpCreateStruct) == -1)
return -1;
m_pnid.cbSize = (DWORD)sizeof(NOTIFYICONDATA);
m_pnid.hWnd = this->m_hWnd;
m_pnid.uID = IDR_MAINFRAME;
m_pnid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP; // 图标有效|自定义消息有效
m_pnid.uCallbackMessage = SYS_ICO_MSG;
m_pnid.hIcon = g_pMainWnd->m_hIconDefault;
strcpy(m_pnid.szTip, m_pCurUser->m_sUserName);
Shell_NotifyIcon(NIM_ADD, &m_pnid); //在托盘区添加图标
return 0;
}
void CXX::OnTimer(UINT_PTR nIDEvent)
{
int nIndex = ...; //根据当前最新信息是谁,换成谁的头像序号
bool bShow = true;
if (!bShow)
nIndex = 0;
bShow = !bShow;
if (nIDEvent == TIMER_FLASH)
{
m_pnid.hIcon = m_list.ExtractIconA(nIndex);
Shell_NotifyIcon(NIM_MODIFY, &m_pnid);
}
}
void CXX::OnTimer(UINT_PTR nIDEvent)
{
int nIndex = ...; //根据当前最新信息是谁,换成谁的头像序号
bool bShow = true;
if (!bShow)
nIndex = 0;
bShow = !bShow;
if (nIDEvent == TIMER_FLASH)
{
// 关键是这里
if (m_pnid.hIcon != NULL)
DestroyIcon(m_pnid.hIcon);
m_pnid.hIcon = m_list.ExtractIconA(nIndex);
Shell_NotifyIcon(NIM_MODIFY, &m_pnid);
}
}