MS的bug???
关于tooltip的定义:
typedef struct tagTOOLINFOW {
UINT cbSize;
UINT uFlags;
HWND hwnd;
UINT_PTR uId;
RECT rect;
HINSTANCE hinst;
LPWSTR lpszText;
#if (_WIN32_IE >= 0x0300)
LPARAM lParam;
#endif
#if (_WIN32_WINNT >= 0x0501)
void *lpReserved;
#endif
} TTTOOLINFOW, NEAR *PTOOLINFOW, *LPTTTOOLINFOW;
当定义_WIN32_WINNT >= 0x0501后结构体大小是48,此时通过api操纵tooltip时提示无法显示出来。我查看了mfc代码,而mfc没有使用该结构体而是使用自己定义的结构体绕过该问题。在codeproject上查找到一个类似的问题,无答案。我尝试了很多办法,发现TOOLINFO的flag设置为:m_ToolTip.uFlags = TTF_SUBCLASS;或许可以解决问题,但是不是很使用我现在的情况。现在我的解决办法是强制把cbSize设置为44,解决了问题,但是感觉很可怕。不知是否有更好的解决方法。
posted on 2007-07-23 14:19
万连文 阅读(1703)
评论(2) 编辑 收藏 引用 所属分类:
乱七八糟