Windows 下任务栏气球提示

博客涉及Windows系统相关任务,还提及了IE相关内容,但具体细节因内容缺失暂不明确。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

源代码置于公共域
file "oBallonTaskBar.h"
----------------------------------------------------------------
#pragma once

/* This class is modified from qDong QDongTaskIcon, and intend
 * to port to other GUI system. It run in Windows 2K/XP/2K3 and
 * above only currently.
 *
 * onlyAmigo DevTeam 2005-08-14
 * by Palinx Young
 *
 * Prerequisites :
 * 	Tested with wxWidgets 2.6.1, may work fine in 2.6.0 and above;
 *
 * 	Tested with MinGW 3.4.4, may be modifed if you use other compilers;
 *
 * 	Define the symbol WINVER=0x0500;
 *
 * 	Define the symbol _WIN32_IE=0x0500;
 *
 * 	To use NIIF_NOSOUND, define _WIN32_IE=0x0600;
 *
 * 	You MUST call wxTaskBarIcon::SetIcon() method
 * 			before call oBallonTaskBar::ShowBalloon() method;
 */

#include <wx/taskbar.h>
#include <shellapi.h>

class wxTaskBarIconWindow: public wxFrame {
    public:
        wxTaskBarIconWindow(wxTaskBarIcon* icon): wxFrame(NULL, wxID_ANY,
            wxEmptyString, wxDefaultPosition, wxDefaultSize, 0), m_icon(icon){}

        WXLRESULT MSWWindowProc(WXUINT msg, WXWPARAM wParam, WXLPARAM lParam) {
                return 0;
        }

    private:
        wxTaskBarIcon* m_icon;
};

class oBallonTaskBar: public wxTaskBarIcon {
    public:
        static const int ICON_ERROR = NIIF_ERROR;
        static const int ICON_INFO = NIIF_INFO;
        static const int ICON_NONE = NIIF_NONE;
        static const int ICON_WARNING = NIIF_WARNING;

        #if _WIN32_IE>=0x0600
            static const int ICON_NOSOUND = NIIF_NOSOUND; // _WIN32_IE=0x0600
        #endif

        oBallonTaskBar(){}
        ;

        bool ShowBalloon(wxString title, wxString msg, int iconID = ICON_INFO,
            unsigned int timeout = 3000);
};

inline bool oBallonTaskBar::ShowBalloon(wxString title, wxString msg, int
    iconID, unsigned int timeout) {
    if (!IsOk()) {
        return false;
    }

    NOTIFYICONDATA notifyData;
    memset(&notifyData, 0, sizeof(notifyData));

    notifyData.cbSize = sizeof(notifyData);
    notifyData.hWnd = (HWND)m_win->GetHWND();
    notifyData.uCallbackMessage = ::RegisterWindowMessage(wxT(
        "wxTaskBarIconMessage"));
    notifyData.uFlags = NIF_MESSAGE;

    notifyData.uFlags |= NIF_INFO;
    lstrcpyn(notifyData.szInfo, msg.c_str(), sizeof(notifyData.szInfo));
    lstrcpyn(notifyData.szInfoTitle, title.c_str(), sizeof
        (notifyData.szInfoTitle));
    notifyData.dwInfoFlags = iconID; // | NIIF_NOSOUND; modified by palinx
    notifyData.uTimeout = timeout;

    notifyData.uID = 99;

    if (m_iconAdded) {
        return (Shell_NotifyIcon(NIM_MODIFY, &notifyData) != 0);
    } else {
        return false;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值