求救:ATL中实现ToolTip问题 !!!!!!!!

argenCHN 2007-09-05 11:24:52
// TestButton.h
class CTestButton : public CWindowImpl<CTestButton>
{
......
// tooltip
HWND m_hwndToolTip;
TOOLINFO m_tiTip;

......
LRESULT OnNotify(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
void CreateToolTip();
......
}

// TestButton.cpp
HWND g_hwndToolTip = NULL;

CTestButton::CTestButton()
{
......
CreateToolTip();
}

void CTestButton::CreateToolTip()
{
INITCOMMONCONTROLSEX icex;

icex.dwSize = sizeof(icex);
icex.dwICC = ICC_BAR_CLASSES;

if (!InitCommonControlsEx(&icex))
return;

m_hwndToolTip = ::CreateWindow(TOOLTIPS_CLASS, _T(""), WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, GetModuleHandle(NULL), NULL);

::SetWindowPos(m_hwndToolTip, HWND_TOPMOST, 0, 0, 0, 0,
SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);

m_tiTip.cbSize = sizeof(TOOLINFO);
m_tiTip.uFlags = TTF_IDISHWND | TTF_TRACK | TTF_ABSOLUTE;
m_tiTip.hwnd = m_hWnd;
m_tiTip.hinst = GetModuleHandle(NULL);
m_tiTip.uId = (UINT)g_hwndToolTip;
m_tiTip.lpszText = _T("my button");

if (!::SendMessage(m_hwndToolTip, TTM_ADDTOOL, 0, (LPARAM)&m_tiTip))
{
MessageBox(_T("couldn't create tooltip"));
}

::SendMessage(m_hwndToolTip, TTM_TRACKACTIVATE, (WPARAM)true,
(LPARAM)&m_tiTip);
}

LRESULT CTestButton::OnNotify(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/)
{
LPNMHDR lpnmhdr;
LPNMTTDISPINFO lpttd;

lpnmhdr = (LPNMHDR)lParam;

if (lpnmhdr->code == TTN_GETDISPINFO)
{
lpttd = (LPNMTTDISPINFO)lpnmhdr;
wcscpy(lpttd->szText, _T("aaaaa"));
}
return 0;
}

LRESULT CTestButton::OnMouseMove(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& bHandled)
{
::SendMessage(m_hwndToolTip, TTM_TRACKACTIVATE, 0, (LPARAM)MAKELPARAM(m_pt.x+10, m_pt.y+10));
}

我自己写了一个按钮,想让鼠标移到按钮上时显示tooltip,
为什么没出来呢??
高人帮帮忙,谢谢
...全文
281 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunmz_wjxy 2007-09-17
  • 打赏
  • 举报
回复
使用WTL里的控件吧!里面提供了ToolTip
WTL里的控件在ATL里可以直接使用
AIRFLYNET 2007-09-16
  • 打赏
  • 举报
回复
如果系统不提供,那就自己画
argenCHN 2007-09-12
  • 打赏
  • 举报
回复
argenCHN 2007-09-10
  • 打赏
  • 举报
回复
up
argenCHN 2007-09-06
  • 打赏
  • 举报
回复
没人吗 :(

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧