在cad设计时,需要绘制文字,用户可以设置设置绘制文字的高度等属性。
主要用到函数说明:
_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 DrawText() { // 创建一个文字样式,用于批注文字字体. axMxDrawX1.AddTextStyle2("MyCommentFont", "黑体", 0.7); // 创建一个与用户交互取点的对象。 MxDrawUiPrPoint getPt = new MxDrawUiPrPoint(); getPt.message = "点取插入点"; // 设置动态绘制参数. var spDrawData = getPt.InitUserDraw("DrawText"); spDrawData.SetString("Text", "黄洪辉"); spDrawData.SetDouble("TextHeight", 100); // 开始取第一个点。 if (getPt.go() != MCAD_McUiPrStatus.mcOk) return; var ret = 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 == "DrawText") { // 得到绘制参数. string sText = pCustomEntity.GetString("Text"); double dTextHeight = pCustomEntity.GetDouble("TextHeight"); // 绘制文字 pWorldDraw.DrawText(curPoint.x, curPoint.y, sText, dTextHeight, 0, MCAD_McHorizontalAlignment.mcHorizontalAlignmentCenter, MCAD_McVerticalAlignment.mcVerticalAlignmentBottom); } }
原文地址:https://www.cnblogs.com/yzy0224/p/11064808.html
时间: 2024-10-09 11:09:34