1、主要用到函數說明:_DMxDrawX::DrawLine
繪制一個直線。詳細說明如下:
參數 | 說明 |
DOUBLE dX1 | 直線的開始點x坐标 |
DOUBLE dY1 | 直線的開始點y坐标 |
DOUBLE dX2 | 直線的結束點x坐标 |
DOUBLE dY2 | 直線的結束點y坐标 |
2、IMxDrawCustomEntity::Draw
把實體繪制到圖上。一般用于動态拖放時,在拖放結束時,繪制到圖上。
3、_DMxDrawXEvents::DynWorldDraw
動态拖放時的繪制事件。詳細說明如下:
參數 | 說明 |
DOUBLE dX | 目前滑鼠位置X坐标 |
DOUBLE dY | 目前滑鼠位置Y坐标 |
IDispatch* pWorldDraw | IMxDrawWorldDraw對象,用于動态繪制 |
IDispatch* pData | IMxDrawCustomEntity對象,動态繪制資料 |
4、_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 |
5、繪制虛線直線
js中實作代碼說明:
(1)動态拖放時的繪制事件:
function DynWorldDrawMyLine( pCustomEntity, pWorldDraw, curPt) {
//與使用者互動在圖面上提取一個點
var vBasePt = pCustomEntity.GetPoint("BasePoint");
//定義虛線資料據,"MyLineType"是線型名,"6,-8"是虛線的一個機關定義,6是實線長,-8是空格長
mxOcx.AddLinetype("MyLineType", "6,-10");
//設計目前線型為"MyLineType"
pWorldDraw.LineType = "MyLineType";
//繪制一個直線
//參數一直線的開始點x坐标,參數二直線的開始點y坐标,參數三直線的結束點x坐标,參數四直線的結束點y坐标
pWorldDraw.DrawLine (vBasePt.x, vBasePt.y, curPt.x, curPt.y);
}
(2)動态繪制虛線直線:
function DrawMyline() {
// 建立一個與使用者互動取點的對象。
var point1 = mxOcx.GetPoint(false,0,0,"\n 點取開始點:");
if(point1 == null)
{
return;
}
var getSecondPt = mxOcx.NewComObject("IMxDrawUiPrPoint");
getSecondPt.message = "第二點";
getSecondPt.basePoint = point1;
//不開啟皮筋效果
getSecondPt.setUseBasePt(false);
//調用
var spDrawData = getSecondPt.InitUserDraw("TestDynDrawMyLine");
// 設定動态繪制參數.
spDrawData.SetPoint("BasePoint", point1);
// 開始取第二個點。
if (getSecondPt.go() != 1)
return;
var ret = spDrawData.Draw();
}