用户可以在控件视区任意位置绘制直线。

主要用到函数说明:

_DMxDrawX::DrawLine

绘制一个直线。详细说明如下:

参数 说明

DOUBLE dX1

直线的开始点x坐标

DOUBLE dY1

直线的开始点y坐标

DOUBLE dX2

直线的结束点x坐标

DOUBLE dY2

直线的结束点y坐标

IMxDrawCustomEntity::Draw

把实体绘制到图上。一般用于动态拖放时,在拖放结束时,绘制到图上。

_DMxDrawXEvents::DynWorldDraw

动态拖放时的绘制事件。详细说明如下:

参数 说明

DOUBLE dX

当前鼠标位置X坐标

DOUBLE dY

当前鼠标位置Y坐标

IDispatch* pWorldDraw

IMxDrawWorldDraw对象,用于动态绘制

IDispatch* pData

IMxDrawCustomEntity对象,动态绘制数据

_DMxDrawX::DrawText

绘制一个单行文字。详细说明如下:

参数 说明

DOUBLE dPosX

文字的位置的X坐标

DOUBLE dPosY

文字的位置的Y坐标

BSTR pszText

文字内容字符串

DOUBLE dHeight

文字高度

DOUBLE dRotation

文字的旋转角度

SHORT horizontalMode

文字的水平对齐方式,0=kTextLeft,1=kTextCenter,2=kTextRight

SHORT verticalMode

文字的竖直对齐方式,1=kTextBottom,2=kTextVertMid,3=kTextTop

c#中实现代码说明:

动态拖放时的绘制事件:

private void DrawWidthline()
{
MxDrawUiPrPoint getPt = new MxDrawUiPrPoint();
getPt.message = "点取第一点:";
if (getPt.go() != MCAD_McUiPrStatus.mcOk)
return;
//点取第二点
MxDrawUiPrPoint getSecondPt = new MxDrawUiPrPoint();
getSecondPt.message = "点取第二点:";
//调用
MxDrawCustomEntity spDrawData = getSecondPt.InitUserDraw("TestDynDrawWidthline");
// 设置动态绘制参数.
spDrawData.SetPoint("BasePoint", getPt.value());
//设置线宽
spDrawData.SetDouble("TestDynDrawlineWidth", 10);
// 开始取第二个点。
if (getSecondPt.go() != MCAD_McUiPrStatus.mcOk)
return;
spDrawData.Draw();
}

动态绘制带颜色宽度的直线:

private void axMxDrawX1_DynWorldDraw(object sender, AxMxDrawXLib._DMxDrawXEvents_DynWorldDrawEvent e)
{
MxDrawCustomEntity pCustomEntity = (MxDrawCustomEntity)e.pData;
MxDrawWorldDraw pWorldDraw = (MxDrawWorldDraw)e.pWorldDraw;
string sGuid = pCustomEntity.Guid; MxDrawPoint curPoint = new MxDrawPoint(); curPoint.x = e.dX;
curPoint.y = e.dY;
if(sGuid == "TestDynDrawWidthline")
{
MxDrawPoint sPt = pCustomEntity.GetPoint("BasePoint");
double dw = pCustomEntity.GetDouble("TestDynDrawlineWidth");
pWorldDraw.LineWidth = dw;
//设置直线颜色
MxDrawMcCmColor color = new MxDrawMcCmColor();
color.SetRGB(255, 0, 0);
pWorldDraw.Color = color.EntityColor;
//绘制一个直线
//参数一直线的开始点x坐标,参数二直线的开始点y坐标,参数三直线的结束点x坐标,参数四直线的结束点y坐标
pWorldDraw.DrawLine(sPt.x, sPt.y, curPoint.x, curPoint.y);
}
}

最新文章

  1. python SMTP邮件发送(转载)
  2. 汇编学习(六)——代码转换程序
  3. mac El Capitan 10.11.6
  4. MJRefresh简单处理
  5. Data Pump(数据抽取)介绍
  6. (C#) Parse xml 时, 返回的node值总是null。
  7. Grunt 之通配符
  8. POJ 2524 (简单并查集) Ubiquitous Religions
  9. Linux中重定向及管道
  10. js常见事件
  11. 国内国外MD5在线解密站点
  12. koa2 controller中实现类似sleep的延迟功能
  13. 3Sum探讨(Java)
  14. Time Complexity of Loop with Powers
  15. 20190329-盒尺寸、boder-
  16. VS2017 编译Assimp
  17. css3中trastion,transform,animation基本的了解
  18. javascript中let和var的区别
  19. 最全的android学习资料
  20. 全排列-hdu1027

热门文章

  1. bzoj 4543 HOTEL 加强版
  2. VS2013插件开发
  3. hdu5475(线段树单点修改,统计区间乘积)
  4. 洛谷 P3622 [APIO2007]动物园【状压dp】
  5. poj 2398 Toy Storage【二分+叉积】
  6. [App Store Connect帮助]八、维护您的 App(4.2)查看评分与评论
  7. 组合数学练习题(二)——Chemist
  8. Mybatis的全局配置文件标签介绍(mybatis-config.xml)
  9. A - Supercentral Point CodeForces - 165A
  10. 递推DP UVA 1291 Dance Dance Revolution