请问CFormView工程的对话框控件的tooltip如何实现?(与dialog工程不同?)

kvw3000 2004-06-23 10:51:41
如题,我采用与基于dialog一样的办法,不行。
m_ptip = new CToolTipCtrl;
if(!m_ptip->Create(this))
{
TRACE("Unable To create ToolTip\n");
return;
}
m_ptip->AddTool( GetDlgItem(IDC_SEND), "....");
m_ptip->AddTool( GetDlgItem(IDC_stop), "....");
m_ptip->AddTool( GetDlgItem(IDC_REFRESH), "....");
m_ptip->Activate(TRUE);
请赐教
...全文
81 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
kongyunzhongque 2004-06-24
  • 打赏
  • 举报
回复
显示工具提示文本
(1).如果是菜单或工具栏显示,则只要在ID属性的Prompt栏加"\n提示显示".
(2).在公共控件里显示则需以下步骤:
<1>.激活工具提示,方法在初始化里(OnInitDialog或OnInitUpdate)调用EnableToolTips();
<2>.在头文件的类声明中的类消息声明中添加:
afx_msg BOOL OnNeedToolTipText(UINT id, NMHDR * pTTTStruct, LRESULT * pResult);
<3>.在源文件中BENGIN_MESSAGE_MAP与END_MESSAGE_MAP之间的类消息表定义中添加:
ON_NOTIFY_EX(TTN_NEEDTEXT, 0, OnNeedToolTipText)
<4>.在源文件中添加OnNeedToolTipText函数:
BOOL CMFCSampleDlg::OnNeedToolTipText(UINT id, NMHDR * pNMHdr, LRESULT * pResult)
{
TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *) pNMHdr;

if (pTTT->uFlags & TTF_IDISHWND) {
UINT idCtrl = ::GetDlgCtrlID(HWND(pTTT->hdr.idFrom));

pTTT->lpszText = MAKEINTRESOURCE(idCtrl);

pTTT->hinst = AfxGetResourceHandle();

return TRUE;
}

return FALSE;
}
<5>.在资源中添加String table资源(要显示的提示信息).一般为IDS_TT_×××_×××.对应控件ID号IDC_×××_×××.
<6>.在Resource.h文件中修改IDS_TT_×××_×××与IDC_×××_×××同一资源号。
<7>.如果控件为静态文本(其他待研究)则需使控件有Notify属性。

方法2:
1).在对话框类的.h中加入:
public:
CToolTipCtrl m_tip;
CWnd *pBtn;

2).在OnInitDialog中加入:
pBtn=GetDlgItem(IDC_BUTTON1);//获得控件句柄
ASSERT(pBtn!=NULL);//判断句柄是否有效
m_tip.Create(pBtn,TTS_ALWAYSTIP);//创建ToolTip
m_tip.AddTool(pBtn);//将ToolTip与控件建立关联
m_tip.SetTipTextColor(RGB(0,0,0));//设置字体前景色
m_tip.SetTipBkColor(RGB(255,255,255));//设置背景色

3).重载PreTranslateMessage
BOOL CtooltipDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
if(m_tip.m_hWnd!=NULL)
m_tip.RelayEvent(pMsg);

return CDialog::PreTranslateMessage(pMsg);
}

4).重载WM_MOUSEMOVE
void CtooltipDlg::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值

m_tip.UpdateTipText("我爱你!!!",pBtn);

CDialog::OnMouseMove(nFlags, point);
}
kvw3000 2004-06-23
  • 打赏
  • 举报
回复
自己up

15,979

社区成员

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

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