三十二、自动捕获功能
E-Form++可视化图形组件库支持在创建、编辑画布上的图形的时候,自动捕获画布上的图形的顶点、编辑控制点、图形与图形的相交点等等,同时也能够自动捕获临近的网格点、画布的边界以及临近的辅助线等。
如下图:
这对于绘制类似于CAD作图方面的高精度图形有很重要的作用。这些功能时可以按需要自由定义的,如果您希望扩展新的捕捉方式,覆盖CFODataModel的下面的方法即可:
// Pick nearest point,this is used for glue mode,when
you moving near a shape,it will glue to its
// control handle point or the shapes vector points.
// m_SelectList -- List of shapes for glue.
// ptPick -- nearest glue point,this is a return point.
// ptHit -- HitTest logical point.
// bWithSelection -- if it is true,itself will be used
for glue.
virtual BOOL PickNearestPoint(const CFODrawShapeList
&m_SelectList,
// Nearest point.
CPoint &ptPick,
// Mouse hit point.
const CPoint &ptHit,BOOL bWithSelection = FALSE);
同时E-Form++也内置限制图形在画布空间编辑功能,当这个功能启动的时候,所有的图形的绘制和编辑都限制在画布区域中,不允许移动到画布以外。
调用CFODataModel如下函数即可:
// Set point limit with page,when we move the mouse on
the canvas,mostly we want that the mouse cursor
// only showing within the canvas,this method is defined
for this case.If bLimit is TRUE,this cursor will
// be limited within the canvas.
void SetPointLimitWithPage(const BOOL &bLimit) {
m_bLimitPointWithinPage = bLimit; }
|