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