我正在做一个要用到托盘的程序
http://www.vckbase.com/document/viewdoc/?id=498
下了这个例子来参考,可是编译始终不能通过
error C2065: 'NIIF_INFO' : undeclared identifier
报这个错,我的工程用的是VC6。0
看了下面跟我同样问题的人的回复还是糊里糊涂的希望有哪个高手指点一下怎么做,最好是留下QQ,指导一下

解决方案 »

  1.   

    我这儿有点托盘的资料,包括DEMO,如果要给我消息:[email protected]
      

  2.   

    http://www.vckbase.com/document/viewdoc/?id=492http://www.vckbase.com/document/viewdoc/?id=495
      

  3.   

    安装sdk,注意 #define _WIN32_IE 0x0600
      

  4.   

    1:修改ShellApi.h, 如下:
    下面注释的部分是老的,你用未注释的部分替换注释的部分2:定义
    #ifndef _WIN32_IE
    #define _WIN32_IE 0x0500
    #endif3:okay,我就是这么做的//// Tray notification definitions
    ////typedef struct _NOTIFYICONDATAA {
            DWORD cbSize;
            HWND hWnd;
            UINT uID;
            UINT uFlags;
            UINT uCallbackMessage;
            HICON hIcon;
    #if (_WIN32_IE < 0x0500)
            CHAR   szTip[64];
    #else
            CHAR   szTip[128];
    #endif
    #if (_WIN32_IE >= 0x0500)
            DWORD dwState;
            DWORD dwStateMask;
            CHAR   szInfo[256];
            union {
                 UINT  uTimeout;
                 UINT  uVersion;
            } DUMMYUNIONNAME;
            CHAR   szInfoTitle[64];
            DWORD dwInfoFlags;
    #endif
    #if (_WIN32_IE >= 0x600)
            GUID guidItem;
    #endif
    } NOTIFYICONDATAA, *PNOTIFYICONDATAA;
    typedef struct _NOTIFYICONDATAW {
            DWORD cbSize;
            HWND hWnd;
            UINT uID;
            UINT uFlags;
            UINT uCallbackMessage;
            HICON hIcon;
    #if (_WIN32_IE < 0x0500)
            WCHAR  szTip[64];
    #else
            WCHAR  szTip[128];
    #endif
    #if (_WIN32_IE >= 0x0500)
            DWORD dwState;
            DWORD dwStateMask;
            WCHAR  szInfo[256];
            union {
                 UINT  uTimeout;
                 UINT  uVersion;
            } DUMMYUNIONNAME;
            WCHAR  szInfoTitle[64];
            DWORD dwInfoFlags;
    #endif
    #if (_WIN32_IE >= 0x600)
            GUID guidItem;
    #endif
    } NOTIFYICONDATAW, *PNOTIFYICONDATAW;
    #ifdef UNICODE
    typedef NOTIFYICONDATAW NOTIFYICONDATA;
    typedef PNOTIFYICONDATAW PNOTIFYICONDATA;
    #else
    typedef NOTIFYICONDATAA NOTIFYICONDATA;
    typedef PNOTIFYICONDATAA PNOTIFYICONDATA;
    #endif // UNICODE
    #define NOTIFYICONDATAA_V1_SIZE     FIELD_OFFSET(NOTIFYICONDATAA, szTip[64])
    #define NOTIFYICONDATAW_V1_SIZE     FIELD_OFFSET(NOTIFYICONDATAW, szTip[64])
    #ifdef UNICODE
    #define NOTIFYICONDATA_V1_SIZE      NOTIFYICONDATAW_V1_SIZE
    #else
    #define NOTIFYICONDATA_V1_SIZE      NOTIFYICONDATAA_V1_SIZE
    #endif#define NOTIFYICONDATAA_V2_SIZE     FIELD_OFFSET(NOTIFYICONDATAA, guidItem)
    #define NOTIFYICONDATAW_V2_SIZE     FIELD_OFFSET(NOTIFYICONDATAW, guidItem)
    #ifdef UNICODE
    #define NOTIFYICONDATA_V2_SIZE      NOTIFYICONDATAW_V2_SIZE
    #else
    #define NOTIFYICONDATA_V2_SIZE      NOTIFYICONDATAA_V2_SIZE
    #endif
    #if (_WIN32_IE >= 0x0500)
    #define NIN_SELECT          (WM_USER + 0)
    #define NINF_KEY              0x1
    #define NIN_KEYSELECT       (NIN_SELECT | NINF_KEY)
    #endif#if (_WIN32_IE >= 0x0501)
    #define NIN_BALLOONSHOW     (WM_USER + 2)
    #define NIN_BALLOONHIDE     (WM_USER + 3)
    #define NIN_BALLOONTIMEOUT  (WM_USER + 4)
    #define NIN_BALLOONUSERCLICK (WM_USER + 5)
    #endif
    #define NIM_ADD         0x00000000
    #define NIM_MODIFY      0x00000001
    #define NIM_DELETE      0x00000002
    #if (_WIN32_IE >= 0x0500)
    #define NIM_SETFOCUS    0x00000003
    #define NIM_SETVERSION  0x00000004
    #define     NOTIFYICON_VERSION 3
    #endif#define NIF_MESSAGE     0x00000001
    #define NIF_ICON        0x00000002
    #define NIF_TIP         0x00000004
    #if (_WIN32_IE >= 0x0500)
    #define NIF_STATE       0x00000008
    #define NIF_INFO        0x00000010
    #endif
    #if (_WIN32_IE >= 0x600)
    #define NIF_GUID        0x00000020
    #endif#if (_WIN32_IE >= 0x0500)
    #define NIS_HIDDEN                0x00000001
    #define NIS_SHAREDICON          0x00000002// says this is the source of a shared icon// Notify Icon Infotip flags
    #define NIIF_NONE       0x00000000
    // icon flags are mutually exclusive
    // and take only the lowest 2 bits
    #define NIIF_INFO       0x00000001
    #define NIIF_WARNING    0x00000002
    #define NIIF_ERROR      0x00000003
    #define NIIF_ICON_MASK  0x0000000F
    #if (_WIN32_IE >= 0x0501)
    #define NIIF_NOSOUND    0x00000010
    #endif
    #endifSHSTDAPI_(BOOL) Shell_NotifyIconA(DWORD dwMessage, PNOTIFYICONDATAA lpData);
    SHSTDAPI_(BOOL) Shell_NotifyIconW(DWORD dwMessage, PNOTIFYICONDATAW lpData);
    #ifdef UNICODE
    #define Shell_NotifyIcon  Shell_NotifyIconW
    #else
    #define Shell_NotifyIcon  Shell_NotifyIconA
    #endif // !UNICODE////
    //// End Tray Notification Icons
    /////*
    ////
    //// Tray notification definitions
    ////typedef struct _NOTIFYICONDATAA {
            DWORD cbSize;
            HWND hWnd;
            UINT uID;
            UINT uFlags;
            UINT uCallbackMessage;
            HICON hIcon;
            CHAR   szTip[64];
    } NOTIFYICONDATAA, *PNOTIFYICONDATAA;
    typedef struct _NOTIFYICONDATAW {
            DWORD cbSize;
            HWND hWnd;
            UINT uID;
            UINT uFlags;
            UINT uCallbackMessage;
            HICON hIcon;
            WCHAR  szTip[64];
    } NOTIFYICONDATAW, *PNOTIFYICONDATAW;
    #ifdef UNICODE
    typedef NOTIFYICONDATAW NOTIFYICONDATA;
    typedef PNOTIFYICONDATAW PNOTIFYICONDATA;
    #else
    typedef NOTIFYICONDATAA NOTIFYICONDATA;
    typedef PNOTIFYICONDATAA PNOTIFYICONDATA;
    #endif // UNICODE
    #define NIM_ADD         0x00000000
    #define NIM_MODIFY      0x00000001
    #define NIM_DELETE      0x00000002#define NIF_MESSAGE     0x00000001
    #define NIF_ICON        0x00000002
    #define NIF_TIP         0x00000004WINSHELLAPI BOOL WINAPI Shell_NotifyIconA(DWORD dwMessage, PNOTIFYICONDATAA lpData);
    WINSHELLAPI BOOL WINAPI Shell_NotifyIconW(DWORD dwMessage, PNOTIFYICONDATAW lpData);
    #ifdef UNICODE
    #define Shell_NotifyIcon  Shell_NotifyIconW
    #else
    #define Shell_NotifyIcon  Shell_NotifyIconA
    #endif // !UNICODE////
    //// End Tray Notification Icons
    ////*/
      

  5.   

    Mackz(在相互) 
    没你想象的那么简单
    error C2065: 'NIF_INFO' : undeclared identifier这个你不说我已经试过了
      

  6.   

    我更新了SDK,在stdafx.h里加了 #define _WIN32_IE 0x0600编译是通过了。。但这个例子的气球提示还是没有出来。。
      

  7.   

    你确定Shell_NotifyIcon的参数都给对了么?
    难道楼主的操作系统是98?
      

  8.   

    #define _WIN32_IE 0x0600改成#define _WIN32_IE 0x0500就好了问题解决
      

  9.   

    我问一下楼上自以为很了不起没事插一句的人aaronwang81(痞子)我水平不好MSDN没查到相关的内容你水平好你查查看?
      

  10.   

    一直在关注这个帖子因为我也在看气球提示现在总算知道怎么弄了这个例子在VC7编译都是一把通过的。。VC6就那么麻烦了顺便BS一下aaronwang81(痞子)这类人,自己也不懂非要装很懂,楼主说得对,你本事那么好你去MSDN里查查看啊?我怕是正解放在这里你也查不出来