Chinaunix首页 | 论坛 | 博客
  • 博客访问: 410036
  • 博文数量: 159
  • 博客积分: 372
  • 博客等级: 一等列兵
  • 技术积分: 1693
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-13 17:05
个人简介

致力于图形处理和移动开发。

文章分类

全部博文(159)

文章存档

2014年(77)

2013年(67)

2012年(15)

我的朋友

分类: C#/.net

2013-11-15 11:38:49

在上一文中,我们介绍了如何将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);
}

阅读(1065) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~