www.mxdraw.com
内容索引主面
前一个向上下一个
_DMxDrawX::ZoomWindow 方法

窗口缩放,把指定的范围内的图形放到视区中

IDL
[id(42), helpstring("method ZoomWindow")]
void ZoomWindow(DOUBLE dLBx, DOUBLE dLBy, DOUBLE dRTx, DOUBLE dRTy);
参数 
说明 
DOUBLE dLBx 
矩形框范围的左下角X坐标 
DOUBLE dLBy 
矩形框范围的左下角Y坐标 
DOUBLE dRTx 
矩形框范围的右上角X坐标 
DOUBLE dRTy 
矩形框范围的右上角Y坐标 

例如: js 根据一个打印比例,缩放当前视区显示范围

            function myclick()
            {
            // 打印比例.这里默认取2,表示图纸上1个毫米代表实际中的0.5米.
            var scale= 0.5;

            // 因为所有图纸都约定好,1个绘图单位代表实际中的1毫米.
            // 所以图纸1个毫米也代表scale * 1000.0 个绘图单位。
            var salce2 = scale * 1000.0;

            // 控件的宽.,就是控件将来打印出来后,在图纸上的宽长度,单位是图纸上的毫米
            var ocxwidth = 200;


            // 得到当前视区坐标
            var mxOcx = document.all.item("MxDrawXCtrl");
            var ret = mxOcx.Call("Mx_GetViewCoord", "");

            if (ret.AtString(0) != "Ok")
            {
                return;
            }
         

            // 计算出当前显示的视区中心坐标.
            var w = ret.AtDouble(3) - ret.AtDouble(1);
            var h = ret.AtDouble(4) - ret.AtDouble(2);

            var cenx = ret.AtDouble(1) + w / 2.0;
            var ceny = ret.AtDouble(2) + h / 2.0;

            // 根据比例,算出控件新的显示范围.以前的中心显示位置不变.
            // 控件打印时显示的宽度,绘图单位.
            var rw = ocxwidth * salce2;
            var rh = h / w * ocxwidth;

            // 新的显示范围坐标。
            var lx = cenx - rw / 2.0;
            var ly = ceny - rh / 2.0;
            var rx = cenx + rw / 2.0;
            var ry = ceny + rh / 2.0;

            mxOcx.ZoomWindow(lx,ly,rx,ry);
            }
Copyright (c) 2010. All rights reserved.
你认为该帮助怎么样? 发送反馈信息!