控件上的气泡提示

seadistant 2007-01-10 07:14:30
以下是一段代码,可以在托盘里显示一个气泡提示,问题是怎么改一下就可以在一个指定的控件上显示呢,比如一个CEdit 控件 id=IDC_RECORDMAC???
希望高手指点. 我在vc2005里做,
NOTIFYICONDATA m_nData;
m_nData.cbSize=sizeof(NOTIFYICONDATA);
m_nData.hWnd=pEdit->GetSafeHwnd();
m_nData.uFlags=NIF_MESSAGE|NIF_INFO|NIF_ICON;
m_nData.uCallbackMessage=NULL;
m_nData.uID=IDC_RECORDMAC;
m_nData.hIcon=AfxGetApp()->LoadIcon(IDC_RECORDMAC);
m_nData.dwInfoFlags=NIIF_INFO;
_tcscpy(m_nData.szInfoTitle,L"管理员");
_tcscpy(m_nData.szInfo,L"欢迎使用");
Shell_NotifyIcon(NIM_ADD,&m_nData);
...全文
770 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
covsno 2007-01-11
  • 打赏
  • 举报
回复
m_toolTip.Create(this,0x40);
goodboyws 2007-01-11
  • 打赏
  • 举报
回复
m_toolTip.Create(this, TTS_NOPREFIX | TTS_BALLOON);就可以
DarknessTM 2007-01-11
  • 打赏
  • 举报
回复
通知区域的气泡提示是系统固有的(IE6以上),如果你要在一个控件中实现是需要自己搞的
seadistant 2007-01-11
  • 打赏
  • 举报
回复
covsno() 和 no111(哈里路亚)一人一半吧,差点把covsno()忘了
seadistant 2007-01-11
  • 打赏
  • 举报
回复
结贴了,no111(哈里路亚)80,其它人,少点吧,他写的最多了
seadistant 2007-01-10
  • 打赏
  • 举报
回复
上面第二条后面少加了一句:
m_toolTip.AddTool(this->GetDlgItem(IDC_CHECK12),AFX_IDS_IDLEMESSAGE);
AFX_IDS_IDLEMESSAGE是个自定义的字符串,你可以在资源里加上你想要的
seadistant 2007-01-10
  • 打赏
  • 举报
回复
终于解决了,但是结果并不是我想要的那种气泡提示(发你改一个文件夹名时输入一个"\"提示出错的那种,这种效果中是一个矩型的,
不过还是总结步骤如下:
1.CToolTipCtrl m_toolTip,如果你是在CDialog中的一个控件要提示的话,就把m_tooltip定义成成员变量,
2.//创建m_Tooltip
m_toolTip.Create(this->GetDlgItem(IDC_CHECK12));
可以把这部分代码放到OnInitDialog()中
3.能显示的关键:就是一定要重写PreTranslateMessage();
然后在第一句加上m_toolTip.RelayEvent(pMsg) ;

??忽然想起来了,是不是想得到那么我说的气泡提示改一下样式就可以了?高手答一下,用什么样式??
seadistant 2007-01-10
  • 打赏
  • 举报
回复
控件ID=IDC_CHECK12
当前窗口this
提示信息:OK
CToolTipCtrl m_toolTip;
m_toolTip.Create(this);
m_toolTip.AddTool(this->GetDlgItem(IDC_CHECK12),AFX_IDS_IDLEMESSAGE);
我这样写怎么么没有结果呢,郁闷中............
covsno 2007-01-10
  • 打赏
  • 举报
回复
CToolTipCtrl m_toolTip;
m_toolTip.Create(m_hWnd); // 创建, m_hWnd 主窗口句柄ti.hwnd = m_edtPorts.m_hWnd; // 控件句柄
都说的很清楚了
PreTranslateMessage(MSG* pMsg)
{
m_toolTip.Create(this,TTS_ALWAYSTIP);
m_toolTip.RelayEvent(pMsg);
return CDialog::PreTranslateMessage(pMsg);
}
seadistant 2007-01-10
  • 打赏
  • 举报
回复
1. m_toolTip 什么类型的?定义到哪里?
是不是要提示C*View里的一个控件就把它放在放在这个类里?
2.m_hWnd又是什么,怎么获得?自己程序的主窗口句柄?
no111 2007-01-10
  • 打赏
  • 举报
回复
m_toolTip.Create(m_hWnd); // 创建, m_hWnd 主窗口句柄

TOOLINFO ti;
ti.cbSize = sizeof(ti);
ti.uFlags = TTF_IDISHWND | TTF_SUBCLASS ;
ti.hwnd = m_edtPorts.m_hWnd; // 控件句柄
ti.lpszText = DCONFIG_CONFIG_SYM;
ti.uId = (UINT)m_edtPorts.m_hWnd;

m_toolTip.AddTool(&ti);

15,975

社区成员

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

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