矢量图控件VectorDraw使用教程:ActionUtility对象
2013-11-15 11:09
405 查看
在上一文《矢量图控件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);
}
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);
}
相关文章推荐
- 矢量图控件VectorDraw使用教程:ActionUtility对象
- 矢量图控件VectorDraw使用教程:添加vdFramedControl (Visual C# 2005)
- 扫描识别控件Dynamic .NET TWAIN使用教程:扫描和保存图像
- [转] QT超强精美绘图控件 - QCustomPlot一览 及 安装使用教程
- ASP.NET 2.0数据教程之十二:在GridView控件中使用TemplateField(转)
- Silverlight 中文教程第七部分: 使用控件模板定制控件的观感
- C#基础视频教程3.3 常见控件类型和使用方法
- Silverlight教程第六部分:使用用户控件实现主从表场景
- [翻译]Scott Mitchell 的ASP.NET 2.0数据教程之四十七:使用SqlDataSource控件查询数据
- Scott Mitchell 的ASP.NET 2.0数据教程之十二:在GridView控件中使用TemplateField
- Android高手进阶教程(二十八)之---Android ViewPager控件的使用(基于ViewPager的横向相册)!!!
- C#基础视频教程3.1 常见控件类型和使用方法
- 【示例教程】如何使用LEADTOOLS图像标注控件在界面上对图像进行标注
- [翻译]Scott Mitchell 的ASP.NET 2.0数据教程之十二:在GridView控件中使用TemplateField
- Scott Mitchell 的ASP.NET 2.0数据教程之四十七使用SqlDataSource控件检索数据
- 【v2.x OGE教程 14】控件使用
- Scott Mitchell 的ASP.NET 2.0数据教程之48 使用SqlDataSource控件查询数据
- AjaxControlToolkit 微软出的ajax.net 工具使用教程九 DragPanelExtender(拖拉)控件的使用
- qt超强精美绘图控件 - QCustomPlot一览 及 安装使用教程