Chinaunix首页 | 论坛 | 博客
  • 博客访问: 16496841
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 20:52:47

下载本文示例代码
  工具提示控制是一个小窗口,在其中显示单行文字用以描述应用程序中的工具的用途。这里的工具所指的既可以是窗口(如工具栏上的按钮),也可以是一个固定的区域。大家都知道利用APPWIZARD生成 的应用程序中工具栏带有提示,当你将鼠标放在工具栏某一个按钮上时,将显示一个小提示框告诉你按钮的功能,这种功能方便了软件的使用者。但是在视图区如何实现提示,这方面介绍的资料较少,我是在开发一个图像处理程序的时候遇到这个问题,当时我是想当鼠标放在图像上时,显示图像上对应像素点的灰度值,后来查了一些资料,终于将它解决了,现在将这个方法介绍给大家,希望对朋友们有所帮助。  首先声明一个CtoolTipCtrl类的变量,调用Create函数创建工具通用提示,并将它附在CtoolTipCtrl对象上,然后调用CtoolTipCtrl类的AddTool函数注册工具提示控制,从而为光标放在规定的窗口或区域内时显示工具提示做准备。该函数的原形为:BOOL AddTool( CWnd* pWnd,LPCTSTR lpszText, LPCRECT lpRectTool, UINT nIDTOOL );其中pWnd为指向包含工具提示控制的窗口指针,lpszText为所要在工具提示中显示的文字,lpRectTool为工具书提示所对应的窗口或规定区域,nIDTOOL为工具提示的标志号。在调用CtoolTipCtrl类的Active函数激活提示。最后要作的工作是重载工具提示父窗口的WindowPorc函数,调用CtoolTipCtrl类的RelayEvent函数将鼠标消息传递给工具提示控制对象。以在视图区显示对应点的坐标为例,给出了实现代码: // TestView.cpp : implementation of the CTestView class………..//在文件头定义的全局变量CToolTipCtrl m_ToolTip;//工具提示对象char string[50];//用来存放提示文字CRect rect;//用来存放工具提示所对应的窗口的尺寸#define IDC_CONST 12345//定义的工具提示标志号,注意不要和系统冲突void CTestView::OnMouseMove(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default wsprintf(string,"%d,%d",point.x,point.y); GetClientRect(&recty); m_ToolTip.AddTool(this,string,&rect,IDC_CONST); m_ToolTip.Activate(TRUE); CView::OnMouseMove(nFlags, point);} LRESULT CTestView::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) { // TODO: Add your specialized code here and/or call the base class switch(message)  {case WM_LBUTTONDOWN:   case WM_RBUTTONDOWN:   case WM_MBUTTONDOWN:   case WM_LBUTTONUP:   case WM_MBUTTONUP:   case WM_RBUTTONUP:   case WM_MOUSEMOVE:   {MSG msg;    msg.hwnd=m_hWnd;    msg.message=message;    msg.wParam=wParam;    msg.lParam=lParam;    m_ToolTip.RelayEvent(&msg);   }  }  return CView::WindowProc(message, wParam, lParam);}   工具提示控制是一个小窗口,在其中显示单行文字用以描述应用程序中的工具的用途。这里的工具所指的既可以是窗口(如工具栏上的按钮),也可以是一个固定的区域。大家都知道利用APPWIZARD生成 的应用程序中工具栏带有提示,当你将鼠标放在工具栏某一个按钮上时,将显示一个小提示框告诉你按钮的功能,这种功能方便了软件的使用者。但是在视图区如何实现提示,这方面介绍的资料较少,我是在开发一个图像处理程序的时候遇到这个问题,当时我是想当鼠标放在图像上时,显示图像上对应像素点的灰度值,后来查了一些资料,终于将它解决了,现在将这个方法介绍给大家,希望对朋友们有所帮助。  首先声明一个CtoolTipCtrl类的变量,调用Create函数创建工具通用提示,并将它附在CtoolTipCtrl对象上,然后调用CtoolTipCtrl类的AddTool函数注册工具提示控制,从而为光标放在规定的窗口或区域内时显示工具提示做准备。该函数的原形为:BOOL AddTool( CWnd* pWnd,LPCTSTR lpszText, LPCRECT lpRectTool, UINT nIDTOOL );其中pWnd为指向包含工具提示控制的窗口指针,lpszText为所要在工具提示中显示的文字,lpRectTool为工具书提示所对应的窗口或规定区域,nIDTOOL为工具提示的标志号。在调用CtoolTipCtrl类的Active函数激活提示。最后要作的工作是重载工具提示父窗口的WindowPorc函数,调用CtoolTipCtrl类的RelayEvent函数将鼠标消息传递给工具提示控制对象。以在视图区显示对应点的坐标为例,给出了实现代码: // TestView.cpp : implementation of the CTestView class………..//在文件头定义的全局变量CToolTipCtrl m_ToolTip;//工具提示对象char string[50];//用来存放提示文字CRect rect;//用来存放工具提示所对应的窗口的尺寸#define IDC_CONST 12345//定义的工具提示标志号,注意不要和系统冲突void CTestView::OnMouseMove(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default wsprintf(string,"%d,%d",point.x,point.y); GetClientRect(&recty); m_ToolTip.AddTool(this,string,&rect,IDC_CONST); m_ToolTip.Activate(TRUE); CView::OnMouseMove(nFlags, point);} LRESULT CTestView::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) { // TODO: Add your specialized code here and/or call the base class switch(message)  {case WM_LBUTTONDOWN:   case WM_RBUTTONDOWN:   case WM_MBUTTONDOWN:   case WM_LBUTTONUP:   case WM_MBUTTONUP:   case WM_RBUTTONUP:   case WM_MOUSEMOVE:   {MSG msg;    msg.hwnd=m_hWnd;    msg.message=message;    msg.wParam=wParam;    msg.lParam=lParam;    m_ToolTip.RelayEvent(&msg);   }  }  return CView::WindowProc(message, wParam, lParam);} 下载本文示例代码


VC编程中如何在视图区显示工具提示VC编程中如何在视图区显示工具提示VC编程中如何在视图区显示工具提示VC编程中如何在视图区显示工具提示VC编程中如何在视图区显示工具提示VC编程中如何在视图区显示工具提示VC编程中如何在视图区显示工具提示VC编程中如何在视图区显示工具提示VC编程中如何在视图区显示工具提示VC编程中如何在视图区显示工具提示VC编程中如何在视图区显示工具提示VC编程中如何在视图区显示工具提示VC编程中如何在视图区显示工具提示VC编程中如何在视图区显示工具提示VC编程中如何在视图区显示工具提示
阅读(104) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~