tooltips 当我鼠标移到控件上时能够显示tips ,但我吧鼠标移开放在其他空白处还显示这个tips 。why? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CToolTipCtrl m_tooltip;初始化函数里边添加m_tooltip.SetDelayTime(150); PreTranslateMessage(MSG* pMsg)函数里添加:if(m_tooltip.m_hWnd!=NULL) m_tooltip.RelayEvent(pMsg); 也许你没判断好响应 提示框的条件吧,处理一下OnMouseMove(UINT nFlags, CPoint point) 按控件不同分情况讨论,试试看。 他只有在相应的范围内才会产生提示 检查一下代码 看看是不是空白处时也响应了消息。用TRACE看看坐标的情况 多调试一下 祝你好运 PreTranslateMessage(MSG* pMsg)函数里添加: if(m_tooltip.m_hWnd!=NULL) m_tooltip.RelayEvent(pMsg); LZ白度一下 吧 那里有很多例子。 你到底是用MFC写的,还是用win sdk去写的代码啊?你出现的情况我觉得是TOOLINFO中的hwnd没有写对,也就是说Tooltip绑定到了那个窗口。你会不会绑定到了desktop. 这是在onmousemove里面实现的 判断point是不是在所设定的矩形区域,是的话 就Updatetiptext(); 不是的不做动作。如果我在不是里面也updatetiptext(“”,this)的话,可以达到目的,但这时tips会闪烁。设置delay也没有作用。大致如下 for(i=0,i< ;i++){ if(rect[i].ptinrect(point) //rect是保存的矩形区域; { Updatetiptext(str,this) } else { updatetiptext(“”,this); }} 这是在onmousemove里面实现的 判断point是不是在所设定的矩形区域,是的话 就Updatetiptext(); 大致如下 for(i=0,i < ;i++) { if(rect[i].ptinrect(point) //rect是保存的矩形区域; { Updatetiptext(str,this) } else { updatetiptext(“”,this); } }在PreTranslateMessage也有添加if(m_tooltip.m_hWnd!=NULL) m_tooltip.RelayEvent(pMsg);不知道为什么离开区域还能显示上一次的提示消息 .h 中 CToolTipCtrl m_tooltip;CEdit m_edit;初始化里m_tooltip.Create(this);m_tooltip.AddTool(&m_edit,"格式:XX-XX-X");添加虚函数BOOL CDlg1::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class if(pMsg->wParam == VK_ESCAPE || pMsg->wParam == VK_RETURN) return TRUE; m_tooltip.RelayEvent(pMsg); return CDialog::PreTranslateMessage(pMsg);}OVER 这里要根据鼠标点击的区域显示不同的提示。譬如list中有很多行,每行都有不同的提示。 MFC下拉框问题 怎么判断列表控件中的选中复选框是鼠标点击的还是CListCtrl::SetCheck的? 有哪些网络问题是可以通过延迟后回恢复的 CListCtrl选择显示。 如何在进程外服务器这端取得可连接点对象的指针? 请问malloc和free的源码是啥?其运行机理是啥? 我在ACCESS中输入0.123时就变成了.123把给甩了,不知怎么解决。 关于引导区的执行程序问题,类似LILO这个东东!怎样做呢? 如何将BYTE 转为 char? 操作文本文件及显示问题!! 心情很不好,散分......希望运气能变好点...... 大文件CRC校验问题
m_tooltip.SetDelayTime(150); PreTranslateMessage(MSG* pMsg)函数里添加:if(m_tooltip.m_hWnd!=NULL)
m_tooltip.RelayEvent(pMsg);
处理一下OnMouseMove(UINT nFlags, CPoint point)
按控件不同分情况讨论,试试看。
PreTranslateMessage(MSG* pMsg)函数里添加: if(m_tooltip.m_hWnd!=NULL)
m_tooltip.RelayEvent(pMsg); LZ白度一下 吧 那里有很多例子。
判断point是不是在所设定的矩形区域,是的话 就Updatetiptext();
不是的不做动作。如果我在不是里面也updatetiptext(“”,this)的话,可以达到目的,但这时tips会闪烁。设置delay也没有作用。大致如下
for(i=0,i< ;i++)
{
if(rect[i].ptinrect(point) //rect是保存的矩形区域;
{
Updatetiptext(str,this)
}
else
{
updatetiptext(“”,this);
}
}
判断point是不是在所设定的矩形区域,是的话 就Updatetiptext();
大致如下
for(i=0,i < ;i++)
{
if(rect[i].ptinrect(point) //rect是保存的矩形区域;
{
Updatetiptext(str,this)
}
else
{
updatetiptext(“”,this);
}
}
在PreTranslateMessage也有添加if(m_tooltip.m_hWnd!=NULL)
m_tooltip.RelayEvent(pMsg);不知道为什么离开区域还能显示上一次的提示消息
CToolTipCtrl m_tooltip;
CEdit m_edit;初始化里
m_tooltip.Create(this);
m_tooltip.AddTool(&m_edit,"格式:XX-XX-X");添加虚函数
BOOL CDlg1::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->wParam == VK_ESCAPE || pMsg->wParam == VK_RETURN)
return TRUE;
m_tooltip.RelayEvent(pMsg);
return CDialog::PreTranslateMessage(pMsg);
}OVER
譬如list中有很多行,每行都有不同的提示。