本文共 2193 字,大约阅读时间需要 7 分钟。
在上一文中,我们介绍了如何将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); }转载地址:http://bvqvb.baihongyu.com/