MS的bug???
關(guān)于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;
當(dāng)定義_WIN32_WINNT >= 0x0501后結(jié)構(gòu)體大小是48,此時(shí)通過(guò)api操縱tooltip時(shí)提示無(wú)法顯示出來(lái)。我查看了mfc代碼,而mfc沒(méi)有使用該結(jié)構(gòu)體而是使用自己定義的結(jié)構(gòu)體繞過(guò)該問(wèn)題。在codeproject上查找到一個(gè)類(lèi)似的問(wèn)題,無(wú)答案。我嘗試了很多辦法,發(fā)現(xiàn)TOOLINFO的flag設(shè)置為:m_ToolTip.uFlags = TTF_SUBCLASS;或許可以解決問(wèn)題,但是不是很使用我現(xiàn)在的情況?,F(xiàn)在我的解決辦法是強(qiáng)制把cbSize設(shè)置為44,解決了問(wèn)題,但是感覺(jué)很可怕。不知是否有更好的解決方法。
posted on 2007-07-23 14:19
萬(wàn)連文 閱讀(1732)
評(píng)論(2) 編輯 收藏 引用 所屬分類(lèi):
亂七八糟