15,979
社区成员
发帖
与我相关
我的任务
分享
BOOL CSystemTray::ShowBalloon(LPCTSTR szText,
LPCTSTR szTitle /*=NULL*/,
DWORD dwIcon /*=NIIF_NONE*/,
UINT uTimeout /*=10*/ )
{
#ifndef SYSTEMTRAY_USEW2K
return FALSE;
#else
// Bail out if we're not on Win 2K.
if (!m_bWin2K)
return FALSE;
// Verify input parameters.
// The balloon tooltip text can be up to 255 chars long.
ASSERT(AfxIsValidString(szText));
ASSERT(lstrlen(szText) < 256);
// The balloon title text can be up to 63 chars long.
if (szTitle)
{
ASSERT(AfxIsValidString( szTitle));
ASSERT(lstrlen(szTitle) < 64);
}
// dwBalloonIcon must be valid.
ASSERT(NIIF_NONE == dwIcon || NIIF_INFO == dwIcon ||
NIIF_WARNING == dwIcon || NIIF_ERROR == dwIcon);
// The timeout must be between 10 and 30 seconds.
ASSERT(uTimeout >= 10 && uTimeout <= 30);
m_tnd.uFlags = NIF_INFO;
_tcsncpy_s(m_tnd.szInfo, szText, 256);
if (szTitle)
_tcsncpy_s(m_tnd.szInfoTitle, szTitle, 64);
else
m_tnd.szInfoTitle[0] = _T('\0');
m_tnd.dwInfoFlags = dwIcon;
m_tnd.uTimeout = uTimeout * 1000; // convert time to ms
BOOL bSuccess = Shell_NotifyIcon (NIM_MODIFY, &m_tnd);
// Zero out the balloon text string so that later operations won't redisplay
// the balloon.
m_tnd.szInfo[0] = _T('\0');
return bSuccess;
#endif
}
bool rv = m_sysTray.ShowBalloon("123456", "123456", NIIF_INFO, 20);
NOTIFYICONDATA Notify={0};
Notify.cbSize = sizeof(NOTIFYICONDATA);
Notify.hWnd = m_hWnd;
Notify.hIcon = m_hIcon;
Notify.uFlags =NIF_ICON | NIF_MESSAGE | NIF_TIP |NIF_INFO;
Notify.dwInfoFlags = NIIF_INFO;
Notify.uTimeout = 2000;
Notify.uCallbackMessage = WM_ICON_NOTIFY;
memcpy(Notify.szTip,"123",3);
memcpy(Notify.szInfoTitle,"123",3);
memcpy(Notify.szInfo,"123",3);
bool rv = Shell_NotifyIcon(NIM_MODIFY,¬ify);
void SetTray(HWND hWnd,int nIcon, int nAction,LPWSTR lsInfo,LPWSTR lsBullonInfo)
{
NOTIFYICONDATA Notify={0};
Notify.cbSize =sizeof(NOTIFYICONDATA);
Notify.hWnd =hWnd;
Notify.hIcon =LoadIcon(hInst,MAKEINTRESOURCE(nIcon));
Notify.uFlags =NIF_ICON | NIF_MESSAGE | NIF_TIP |NIF_INFO;
Notify.dwInfoFlags = NIIF_INFO;
Notify.uTimeout = 2000;
Notify.uCallbackMessage =WM_TOTRAY;
LPWSTR strInfo=_T("提示");
StringCchCopy(Notify.szTip,_countof(Notify.szTip ),lsInfo);
StringCchCopy(Notify.szInfoTitle,_countof(Notify.szInfoTitle),strInfo);
StringCchCopy(Notify.szInfo,_countof(Notify.szInfo),lsBullonInfo);
Shell_NotifyIcon(nAction,¬ify);
}
m_sysTray.Create(NULL, WM_ICON_NOTIFY, "11111", m_hIcon, IDR_POPUP_MENU, FALSE);