码迷,mamicode.com
首页 > 其他好文 > 详细

托盘程序

时间:2015-07-16 16:03:55      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:

typedef struct _NOTIFYICONDATA {

    DWORD cbSize;

    HWND hWnd;

    UINT uID;

    UINT uFlags;

    UINT uCallbackMessage;

    HICON hIcon;

    TCHAR szTip[64];

    DWORD dwState;

    DWORD dwStateMask;

    TCHAR szInfo[256];

    union {

        UINT uTimeout;

        UINT uVersion;

    };

    TCHAR szInfoTitle[64];

    DWORD dwInfoFlags;

    GUID guidItem;

} NOTIFYICONDATA, *PNOTIFYICONDATA;

cbSize 以字节计的结构大小,以适应不同版本。  

hWnd 接收Windows消息的窗口句柄。  

uID 托盘图标的ID。 

uFlags 指示结构中的哪些成员包含有效数据,可选值:NIF_ICON, NIF_MESSAGENIF_TIPNIF_STATENIF_INFONIF_GUID。  

uCallbackMessage 回调消息ID,由用户自定义。与一个自定义的消息处理函数关联。 

hIcon 托盘图标的句柄。 

szTip 托盘图标的提示字符串。 

注意:以下数据成员仅限系统外壳与常用控制DLL 5.0及以上版本才有效! 

dwState 图标的状态:NIS_HIDDEN-隐藏,或NIS_SHAREDICON-可视。 

dwStateMask 图标状态掩码,用以设置dwState 

szInfo 气球型提示(Balloon ToolTip)的字符串。 

uTimeout 以毫秒计的提示显示时间 

uVersion 确定所依赖的版本。0Win95NOTIFYICON_VERSIONWin2000 

szInfoTitle 气球型提示的标题 

dwInfoFlags 设置气球型提示所用的图标(类似MessageBox中所使用的图标):

 

NIIF_ERROR   错误 

NIIF_INFO    信息 

NIIF_NONE    没有图标 

NIIF_WARNING  警告 

NIIF_ICON_MASK 6.0版本保留 

NIIF_NOSOUND  限6.0版本,不播放对应的声音 

 

guidItem 6.0版本保留 

 

 

用来做任务栏右边的小图标

 

// 结构长度 

m_NotifyIconData.cbSize = sizeof(NOTIFYICONDATA); 

 

// 窗口,消息将发给该窗口 

m_NotifyIconData.hWnd = this->m_hWnd; 

 

// 表示消息发给该窗口时附带ID,那么你就能够if( id == IDR_MAINFRAME ) 

// { do your proc } 

m_NotifyIconData.uID = IDR_MAINFRAME; 

 

// 指定NOTIFYICONDATA结构中uCallbackMessagehIconszTip有填内容 

m_NotifyIconData.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP; 

 

// 表示要放入System tray(系统托盘,放输入法图标的那个地方)的图标 

m_NotifyIconData.hIcon = LoadIcon(AfxGetInstanceHandle(), 

MAKEINTRESOURCE(IDR_MAINFRAME)); 

 

// 自定义消息例如#define WM_USER_CLICKME ( WM_USER + 1 ) 

// 当你鼠标点击等在图标上时,系统会发这个消息给你的窗口,那么你就可 

// 以比如弹出一个菜单 

m_NotifyIconData.uCallbackMessage = WM_USER_CLICKME; 

 

// 鼠标放到图标上后,要显示什么提示 

strcpy(m_NotifyIconData.szTip,"服务进程"); 

 

// 安装一个图标到System tray中 

Shell_NotifyIcon(NIM_ADD,&m_NotifyIconData); 

 

 

 

托盘图标的更新

LRESULT CALLBACK WndProc(HWND hWnd, UINT uMessage, WPARAM wParam, 

                         LPARAM lParam)

{

    static UINT s_uTaskbarRestart;

 

    switch(uMessage)

    {

        case WM_Create:

            s_uTaskbarRestart = RegisterWindowMessage(TEXT("TaskbarCreated"));

            break;

        

        default:

            if(uMessage == s_uTaskbarRestart)

                AddTaskbarIcons();

            break;

    }

 

    return DefWindowProc(hWnd, uMessage, wParam, lParam);

}

 

托盘程序

标签:

原文地址:http://www.cnblogs.com/mhxy13867806343/p/4058410.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!