文档坐标到视区坐标的转换
[id(20), helpstring("method DocToViewCoord")] IDispatch* DocToViewCoord(DOUBLE dX, DOUBLE dY);
例如: Delphi调用例程 ,保存放当前图为jpg文件,大小为当前视区看到的大小
procedure TForm1.Button1Click(Sender: TObject); var pRet: MxDrawResbuf; h, w: double; ptMin : IMxDrawPoint; ptMax : IMxDrawPoint; ptOle : OleVariant; begin if dlgSave1.Execute then begin pRet := MxDrawResbuf(MxDrawX1.Call('Mx_GetMcDbDatabaseBound', '')); if pRet.AtString(0) = 'Ok' then begin ptMin := CoMxDrawPoint.Create(); ptMin.Set_x(pRet.AtDouble(1)); ptMin.Set_y(pRet.AtDouble(2)); ptOle := MxDrawX1.DocToViewCoord(ptMin); ptMin:=IMxDrawPoint(IDisPatch(ptOle)); ptMax := CoMxDrawPoint.Create(); ptMax.Set_x(pRet.AtDouble(3)); ptMax.Set_y(pRet.AtDouble(4)); ptOle := MxDrawX1.DocToViewCoord(ptMax); ptMax:=IMxDrawPoint(IDisPatch(ptOle)); MxDrawX1.ViewColor := clWhite; w := ptMax.Get_x(); w := w - ptMin.Get_x() + 1; h := ptMax.Get_y(); h := ptMin.Get_y() - h + 1; if not MxDrawX1.SaveJpgFile(dlgSave1.FileName, Round(w), Round(h),0) then Showmessage('失败') else Showmessage('成功'); end; end; end;