MFC为我们封装了一个CToolTipCtrl类,他提供了建立工具条提示所需要的功能.
应首先创建一个CToolTipCtrl类的对象CToolTipCtrl m_tooltip;然后,利用该类的成员函数完成按钮提示功能.以下列出工程中常用的成员函数:
BOOL Create(CWnd* pParentWnd,DWORD dwStyle=0);
//参数1为指向父窗口的指针,参数2为创建风格.该函数初始化m_tooltip对象. BOOL AddTool(CWnd* pWnd,LPCTSTR lpszText=LPSTR_TEXTCALLBACK,LPCRECT lpRectTool
=NULL,UINT nIDTool=0);
//参数1为按钮指针,参数2为字符串.该函数添加提示信息.
在头文件中定义了m_tooltip之后,在实现文件的初始化函数(OnInit__)中添加:
m_tooltip.Create(this);
m_tooltip.Activate(TRUE);
m_tooltip.SetTipBkColor(RGB(255,255,255));//设置工具条的背景颜色
m_tooltip.SetTipTextColor(RGB(0,0,255));//设置工具条的文字颜色
m_tooltio.SetDelayTime(100);//设置提示的弹出时间
m_tooltip.AddTool(GetDlgItem(IDC_BUTTON),"提示信息");
应首先创建一个CToolTipCtrl类的对象CToolTipCtrl m_tooltip;然后,利用该类的成员函数完成按钮提示功能.以下列出工程中常用的成员函数:
BOOL Create(CWnd* pParentWnd,DWORD dwStyle=0);
//参数1为指向父窗口的指针,参数2为创建风格.该函数初始化m_tooltip对象. BOOL AddTool(CWnd* pWnd,LPCTSTR lpszText=LPSTR_TEXTCALLBACK,LPCRECT lpRectTool
=NULL,UINT nIDTool=0);
//参数1为按钮指针,参数2为字符串.该函数添加提示信息.
在头文件中定义了m_tooltip之后,在实现文件的初始化函数(OnInit__)中添加:
m_tooltip.Create(this);
m_tooltip.Activate(TRUE);
m_tooltip.SetTipBkColor(RGB(255,255,255));//设置工具条的背景颜色
m_tooltip.SetTipTextColor(RGB(0,0,255));//设置工具条的文字颜色
m_tooltio.SetDelayTime(100);//设置提示的弹出时间
m_tooltip.AddTool(GetDlgItem(IDC_BUTTON),"提示信息");
解决方案 »
- 请问如何从完整的文件名中取出文件的扩展名?
- Double转成CString问题
- Combo Box的一个简单问题,求助!!
- 对于一个同时存在不止一个子窗口的程序,如何才能保证某个指定的子窗口总是被第一优先的刷新呢?
- 用vc6.0 写个mfc扩展dll,regsvr32注册dll, 没有找到dllRejisterServer输入点?在线等
- 各位朋友大家好,求教上位机与下位机的通信问题?
- 请教:全屏幕显示图形(即去掉主框架、系统桌面下任务栏)如何处理?
- 求GIF的文件格式文档。
- 怎么对当前运行的EXE文件进行读操作?
- 各们兄弟,谁知道哪有visual C++ user's guide可以下载?谢了
- 调查,编程的时候有没有遇到这样(极度痛苦)的情况,(UP有分!)
- vc初学者的问题.高分儿
在父窗口中EnableToolTips();
再ON_NOTIFY_EX( TTN_NEEDTEXT, 0, OnToolTipNotify )
消息响应函数
BOOL CBtotDlg::OnToolTipNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult )
{
TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
UINT nID =pNMHDR->idFrom;
if (pTTT->uFlags & TTF_IDISHWND)
{
nID = ::GetDlgCtrlID((HWND)nID);
if(nID)
{
pTTT->lpszText = MAKEINTRESOURCE(nID);
pTTT->hinst = AfxGetResourceHandle();
return(TRUE);
}
}
return(FALSE);
}
搞定
MFC在CPropertySheet中封装了属性,但不支持标题的"这是什么?"帮助提示.函数CPropertySheet::OnNcCreate()屏蔽了扩展风格WS_EX_CONTEXTHELP, 因此,即使你在构造函数中加入了扩展风格,它也不能出现在窗口中.
解决方法很简单,在继承类中设置好风格位,如下所示:
BOOL CWhatsThisPropertySheet::OnNcCreate(
LPCREATESTRUCT lpCreateStruct)
(
if(!CPropertySheet::OnNcCreate(lpCreateStruct))
return FALSE;
//显式地定义此风格
//CPropertySheet默认是关
ModifyStyleEx(0, WS_EX_CONTEXTHELP);
return true;
)