Peter(阿斯拉达): 如果你是使用WTL的话,使用CToolTip类并调用AddTool方法的话,点进去方法查看实际是调用了Win32的SendMessage发送了TTM_ADDTOOL消息. 你添加失败只有两个参数决定了,一个是所在的窗口句柄是否有效m_hWnd, 另一个就是CToolInfo(Win32是 TOOLINFO)的初始化和赋值要正确。 这里是TTM_ADDTOOL消息的链接`https://learn.microsoft.com/zh-cn/windows/win32/controls/ttm-addtool` [code=cpp] BOOL AddTool(HWND hWnd, ATL::_U_STRINGorID text = LPSTR_TEXTCALLBACK, LPCRECT lpRectTool = NULL, UINT_PTR nIDTool = 0) { ATLASSERT(::IsWindow(this->m_hWnd)); ATLASSERT(hWnd != NULL); // the toolrect and toolid must both be zero or both valid ATLASSERT(((lpRectTool != NULL) && (nIDTool != 0)) || ((lpRectTool == NULL) && (nIDTool == 0))); CToolInfo ti(0, hWnd, nIDTool, (LPRECT)lpRectTool, (LPTSTR)text.m_lpstr); return (BOOL)::SendMessage(this->m_hWnd, TTM_ADDTOOL, 0, ti); } [/code]
[C/C++]_[初级]_[三元运算符的陷阱]
[ATL/WTL]_[初级]_[窗口如何实现一个Tooltip]