如何实现文档坐标到视区坐标的转换?
Delphi开发|黄洪辉|2018-05-15 09:14
-
回答:
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;