CToopTipCtrl使用

来源:互联网 发布:充值类淘宝店怎么赚钱 编辑:程序博客网 时间:2024/06/14 03:27

使用CToolTipCtrl让鼠标提示窗口跟着鼠标在屏幕上移动


用一个跟随便鼠标移的提示窗口显示鼠标坐标位置的例子

1、新建一工程(我这是单文档界面)

2、在View里添加变量
   CToolTipCtrl m_tool; 

 

//www.hebzhiye.wanye68.com

3、在View的OnInitialUpdate(……)函数中写入m_tool的初始化代码
      m_tool.Create(this);
   m_tool.AddTool(this,"windows");
   m_tool.SetDelayTime(10);
   m_tool.Activate(true);

4、在View的PreTranslateMessage(……)函数加入m_tool消息处理
    { 
m_tool.RelayEvent(pMsg);
return CScrollView::PreTranslateMessage(pMsg);
     }

5、在view的鼠标移动事件中加入如下代码:
CString str;
str.Format("%d , %d",point.x,point.y);
m_tool.UpdateTipText(str,this);

基本上,按上面这几步完成就可以达到简单的要求了。
从这一点可看出,如果在鼠标移动时,检索出鼠标位于视图中某个对象(如点,线,面,和其它物体),则可以即时把这个物体的名称以信息提示窗的形式显示出来

=============================================

提示信息:

很多的界面设计都需要有Tip提示,下面描述一下Tip的简单使用方法:

1. 首先要New一个CToolTipCtrl的对象m_pContentTip

2. 调用CToolTipCtrl的create函数,指定其父窗口。可以为某个控件,也可以为this。一般设为this。

   m_pContentTip->Create( this, TTS_ALWAYSTIP );

3. AddTool。此函数是设置与某个控件关联的Tip文本。此处可以为多个控件添加不同的提示信息。

  m_pButtonTip->AddTool( GetDlgItem( 控件ID ), 文本 );

4. SetTipBkColor设置背景颜色。

5. SetTipTextColor设置文本颜色。

6. 最重要的一步。在PreTranslateMessage函数中添加下面语句:

if ( m_pContentTip )
{
   m_pContentTip->RelayEvent( pMsg );
}

另外,还可以使用m_pContentTip->UpdateTipText函数来更新Tip信息。