在VC6 中NOTIFYICONDATA的问题

时间:2022-01-19 04:05:31
一个VC6工程,用到了系统托盘的功能,
但是无法实现 气泡tip提示,

typedef struct _NOTIFYICONDATAA{
    DWORD cbSize;
    HWND hWnd;
    UINT uID;
    UINT uFlags;
    UINT uCallbackMessage;
    HICON hIcon;
#if (NTDDI_VERSION < NTDDI_WIN2K)
    TCHAR szTip[64];
#endif
#if (NTDDI_VERSION >= NTDDI_WIN2K)
    TCHAR szTip[128];
    DWORD dwState;
    DWORD dwStateMask;
    TCHAR szInfo[256];
    union{
        UINT  uTimeout;
        UINT  uVersion;  // Used with Shell_NotifyIcon flag NIM_SETVERSION.
    } DUMMYUNIONNAME;
    TCHAR szInfoTitle[64];
    DWORD dwInfoFlags;
#endif
#if (NTDDI_VERSION >= NTDDI_WINXP)
    GUID guidItem;
#endif
#if (NTDDI_VERSION >= NTDDI_VISTA)
    HICON hBalloonIcon;
#endif


VC6可能太旧了,无法用到某些新功能,
请问怎么解决?
我用的是VC6 SP6, WINXP SP2。

5 个解决方案

#1


是编译不通过? 
 如果是, 在工程的stdafx.h 文件修改宏NTDDI_VERSION 的值为 NTDDI_WINXP, (没有这个宏就自己加上)

#2


引用 1 楼 zzz3265 的回复:
是编译不通过? 
如果是, 在工程的stdafx.h 文件修改宏NTDDI_VERSION 的值为 NTDDI_WINXP, (没有这个宏就自己加上)

我按照你的方法做了,编译可以通过,
但是问题没有解决。

#3


先不要结贴,我测试一下。

#4


我试了一下,没成功。


要不装 2003 的 SDK ;


或者,直接用 VC2005 。

#5


我电脑上装有VS2005,
可以拷贝一些文件到VC6的工程解决吗?

#1


是编译不通过? 
 如果是, 在工程的stdafx.h 文件修改宏NTDDI_VERSION 的值为 NTDDI_WINXP, (没有这个宏就自己加上)

#2


引用 1 楼 zzz3265 的回复:
是编译不通过? 
如果是, 在工程的stdafx.h 文件修改宏NTDDI_VERSION 的值为 NTDDI_WINXP, (没有这个宏就自己加上)

我按照你的方法做了,编译可以通过,
但是问题没有解决。

#3


先不要结贴,我测试一下。

#4


我试了一下,没成功。


要不装 2003 的 SDK ;


或者,直接用 VC2005 。

#5


我电脑上装有VS2005,
可以拷贝一些文件到VC6的工程解决吗?