龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

用Visual C++实现窗口的工具提示(2)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
在该结构中,hwndFrom为发出消息的控件句柄,idFrom为控件标识符,code为通知消息的代码,可以通过强制类型转换将NMHDR结构转换为TOOLTIPTEXT结构,后者用于

在该结构中,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;

}

精彩图集

赞助商链接