窗口缩放,把指定的范围内的图形放到视区中
[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); }