用Visual C++实现窗口的工具提示(2)
在该结构中,hwndFrom为发出消息的控件句柄,idFrom为控件标识符,code为通知消息的代码,可以通过强制类型转换将NMHDR结构转换为TOOLTIPTEXT结构,后者用于为控件提供工具提示.
pResult为指向LRESULT的一个指针,表示消息处理的结果代码,在本消息处理函数中该参数可被忽略。
(4)OnToolTip函数的具体实现。
假设按钮的标识符为IDOK,下面的代码为它提供一个工具提示。
BOOL CMyDialog::OnToolTip(UINT id,NMHDR *pNMHDR,LRESULT *pResult) { TOOLTIPTEXT *pTTT=(TOOLTIPTEXT *) pNMHDR;
UINT nID=pNMHDR->idFrom; //获得控件ID
if(pTTT->uFlags&TTF_IDISHWND) //如果idFrom实际上是窗口句柄
nID=::GetDlgCtrlID((HWND)nID); //重新获得控件ID
if(nID==NULL)
return FALSE;
switch(nID)
{ case IDOK: //如果是标识符为IDOK的按钮
pTTT->lpszText="OK"; //设置提示文本
break;
}
return TRUE;
}
2.2在框架窗口中显示工具提示
对于框架窗口,情况稍微复杂一些,需要分几种情况来讨论。
首先,在文件MainFrm.cpp中定义一个全局的工具提示对象:
CToolTipCtrl m_ToolTip;
然后,在CMainFrame::OnCreate方法中创建工具提示控件:
if(!m_ToolTip.Create(this,TTS_ALWAYSTIP))
{ TRACE0("Failed to create tool tip control ");
return -1;
}
- 上一篇:vc中显示bmp常用的几个函数介绍
- 下一篇:VC读取dat文件