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
萬連文 閱讀(1721)
評論(2) 編輯 收藏 引用 所屬分類:
亂七八糟