VectorDraw使用教程:ActionUtility对象
操作方法
- 01
在上一文《矢量图控件VectorDraw使用教程:添加vdFramedControl (Visual C# 2005)》中,我们介绍了如何将VDF vdFramedControl控件添加到VS2005中。接下来,我们将在VS中演示一些更为复杂的例子。 ActionUtility对象可用于询问客户是否需要在程序中输入一个点、矩形或者距离等数据。如何用户需要数据一个点,你可以调用下列代码: gPoint userpoint; vdFC.BaseControl.ActiveDocument.Prompt("Select a Point:"); //The user can either click a point or type at the command line a point like 5,5,2 StatusCode ret = vdFC.BaseControl.ActiveDocument.ActionUtility.getUserPoint(out userpoint); vdFC.BaseControl.ActiveDocument.Prompt(null); if (ret == StatusCode.Success){ MessageBox.Show("The user selected: x:" + userpoint.x.ToString() + " y:" + userpoint.y.ToString() + " z:" + userpoint.z.ToString() + " In UCS(user coordinate system)"); } 也可以对上述代码做一些修改,在输入一个点,从而创建一个矩形,代码如下: vdFC.BaseControl.ActiveDocument.New(); gPoint userpoint; vdFC.BaseControl.ActiveDocument.Prompt("Select a Point:"); //The user can either click a point or type at the command line a point like 5,5,2 StatusCode ret = vdFC.BaseControl.ActiveDocument.ActionUtility.getUserPoint(out userpoint); vdFC.BaseControl.ActiveDocument.Prompt(null); if (ret == StatusCode.Success){ MessageBox.Show("The user selected: x:" + userpoint.x.ToString() + " y:" + userpoint.y.ToString() + " z:" + userpoint.z.ToString() + " In UCS(user coordinate system)"); } vdFC.BaseControl.ActiveDocument.Prompt("Other corner:"); //The user can either click a point or type at the command line a point like 5,5,2 object ret2 = vdFC.BaseControl.ActiveDocument.ActionUtility.getUserRect(userpoint); vdFC.BaseControl.ActiveDocument.Prompt(null); Vector v = ret2 as Vector; if (v != null) { double angle = v.x; double width = v.y; double height = v.z; //Calculate the point the user clicked. //Use polar command to find the bottom right point moving width distance from the initial point. gPoint userpoint2 = userpoint.Polar(0.0, width); //Use the polar again to go up height distance to find the upper right point. userpoint2 = userpoint2.Polar(VectorDraw.Geometry.Globals.HALF_PI, height); MessageBox.Show("The user selected 2nd point : x:" + userpoint2.x.ToString() + " y:" + userpoint2.y.ToString() + " z:" + userpoint2.z.ToString() + " In UCS(user coordinate system)"); vdFC.BaseControl.ActiveDocument.CommandAction.CmdRect(userpoint, userpoint2); }