设为首页 加入收藏

TOP

11.4.2 CRectTracker类的常用成员函数
2013-10-07 14:33:33 来源: 作者: 【 】 浏览:75
Tags:11.4.2 CRectTracker 常用 成员 函数

11.4.2  CRectTracker类的常用成员函数

该类有7个常用的成员函数,如表11.3所示。

表11.3  CRectTracert成员函数

    < xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

   

Draw

显示矩形

GetTrueRect

返回矩形的宽度和高度,包括改变大小句柄

HitTest

返回与CRectTracker对象关联的光标当前位置

NormalizeHit

规范化一个单击测试代码

SetCursor

根据光标在矩形上方的位置来设置光标

Track

支持用户操作矩形

TrackRubberBand

支持用户“橡皮筋”似的拉伸选择

1.Draw()函数

Draw()函数用于绘制橡皮筋区域的边框及边框内部区域,橡皮筋显示的样式完全取决于该函数的实现,函数原型如下:

  1. void Draw(CDC* pDC ) 

参数pDC指向将要绘制区域的设备上下文环境。

GetTrueRect()函数用于获取橡皮筋区域,函数原型如下:

  1. void GetTrueRect( LPRECT lpTrueRect ) 

参数lpTrueRect是指向橡皮筋区域的指针。

HitTest()函数判断一点与橡皮筋区域的关系,函数原型如下:

  1. int HitTest( CPoint point ) 

参数point就是将要进行判断的点,这个函数的返回值非常重要,根据返回值可以判断点与橡皮筋区域的具体位置关系。返回值与位置的关系如表11.4所示。

表11.4  HitTest()函数的返回值

   

CRectTracker::hitNothing

–1

点不在橡皮筋区域内

CRectTracker::hitTopLeft

0 

点在橡皮筋区域边框的左顶点上

CRectTracker::hitTopRight

1 

点在橡皮筋区域边框的右顶点上

CRectTracker::hitBottomRight

2 

点在橡皮筋区域边框的右底点上

CRectTracker:hitBottomLeft

3 

点在橡皮筋区域边框的左底点上

CRectTracker:hitTop

4 

点在橡皮筋区域的上边框上

CRectTracker:hitRight

5 

点在橡皮筋区域的右边框上

CRectTracker:hitBottom

6 

点在橡皮筋区域的底边框上

CRectTracker:hitLeft

7 

点在橡皮筋区域的左边框上

CRectTracker:hitMiddle

8 

点在橡皮筋区域内

2.SetCursor()函数

SetCursor()函数改变鼠标经过橡皮筋区域时的光标形状,函数原型如下:

  1. BOOL SetCursor(   
  2.     CWnd* pWnd,   
  3.     UINT nHitTest   
  4. )  

函数的第1个参数pWnd是光标所在窗体的指针。第2个参数nHitTest是触发这个函数时当前鼠标坐标点与橡皮筋区域的关系值(即用鼠标坐标点调用HitTest()函数的返    回值)。

3.Track()函数

Track()函数是实现橡皮筋的关键。当调用这个函数后会捕获鼠标,直到用户释放鼠标左键、按下Esc键或按下鼠标左键。函数原型如下:

  1. BOOL Track(   
  2.     CWnd* pWnd,                 //橡皮筋所在区域的窗体指针  
  3.     CPoint point,               //鼠标光标在设备上下文环境中的客户区的坐标  
  4.     BOOL bAllowInvert = FALSE,  //是否允许橡皮筋区域沿X方向或Y方向翻转  
  5.     CWnd* pWndClipTo = NULL     //将要剪切的窗体指针  
  6. );  

其余两个函数NormalizeHit()及TrackRubberBand(),与本实例并无关系,感兴趣的读者可以查阅相关资料。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇11.2.2 VC++ 6.0开发DLL实例 下一篇11.4.1 CRectTracker类的常用数据..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: