如何为一块矩形区域添加ToolTip

ddha556677 2010-01-16 06:20:59
自绘的控件,只知道他的区域坐标,如何添加提示喃? 自绘是一个办法,能不能用CToolTipCtrl完成喃?
...全文
231 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ddha556677 2010-01-16
  • 打赏
  • 举报
回复
额 刚结贴了 谢谢5L 我去实验啦
菜鸟二号 2010-01-16
  • 打赏
  • 举报
回复
BOOL CreateToolTip(HWND hwndTool, TCHAR* pText,DWORD dwStyle)
{
HINSTANCE g_hInst = GetModuleHandle(NULL);
#ifndef TTS_BALLOON
#define TTS_BALLOON 0x40
#endif
TOOLINFO toolInfo = { 0 };
if(hwndTip==NULL)
hwndTip = CreateWindowEx(WS_EX_TOPMOST, TOOLTIPS_CLASS, NULL,
//WS_POPUP |TTS_ALWAYSTIP | TTS_BALLOON,//泡泡型
WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP,//普通方块型
//dwStyle,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
GetParent(hwndTool), NULL,
g_hInst, NULL);
if (!hwndTool || !hwndTip)
{
return FALSE;
}

toolInfo.cbSize = sizeof(toolInfo);
toolInfo.hwnd = hwndTool;
toolInfo.uFlags =TTF_IDISHWND | TTF_SUBCLASS;
toolInfo.uId = (UINT_PTR)hwndTool;
toolInfo.lpszText = pText;
SendMessage(hwndTip, TTM_ADDTOOL, 0, (LPARAM)&toolInfo);
return TRUE;
}

首先你最好要用trackmouseevent函数跟踪鼠标,当鼠标在摸个地方驻留一段时间(这个你查查刚才那个函数),然后判断是否是你所说的按钮的区域,然后调用最上面的那个tooltip函数即可,其实我最初也是你那样干过,但是感觉不是太爽,不知道你有没有这种感觉,建议你还是使用createwindow来创建按钮,子要子类化按钮即可按钮所说的3态来自己画按钮,而不用在WM_MOUSEMOVE里判断区域了
zoulie 2010-01-16
  • 打赏
  • 举报
回复
CToolTipCtrl 不能用了
可以自己用SDK写,或者参照楼上的
Ryanwen 2010-01-16
  • 打赏
  • 举报
回复
我是从CToolTipCtrl继承一个类实现的,你可以用着试试

PARAM:
pWnd 区域所在窗口指针
pszText 提示内容
pRect 提示区域
nIDTool ToolTipCtrl的ID,自己设置一个就是了

CXXToolTipCtrl类继承自CToolTipCtrl
BOOL CXXToolTipCtrl::AddRectTool(CWnd *pWnd, LPCTSTR pszText, LPCRECT pRect, UINT nIDTool)
{
TOOLINFO ti;
ti.cbSize = sizeof(TOOLINFO);
ti.uFlags = TTF_SUBCLASS;
ti.hwnd = pWnd->GetSafeHwnd();
ti.uId = nIDTool;
ti.hinst = AfxGetInstanceHandle();
ti.lpszText = (LPTSTR)pszText;
::CopyRect(&ti.rect, pRect);
return (BOOL)SendMessage(TTM_ADDTOOL, 0, (LPARAM) &ti);
}
ddha556677 2010-01-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ryanwen 的回复:]
自绘? DirectUI方式?
[/Quote]

不是,DirectUI是什么我都不懂~~!,就是一个矩形区域,我贴个按钮的图像,按钮的三态就更换图片就是了,这个东西不是从CButton派生而来,纯粹就是贴图~~
Ryanwen 2010-01-16
  • 打赏
  • 举报
回复
自绘? DirectUI方式?

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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