| 不知道这是否是你想做/拥有的东西 - 试一试,看看是否有效。 
 static void zoomExtents()
{
        AcDbViewTableRecord view;
        AcGePoint3d max = acdbHostApplicationServices()->workingDatabase()->extmax(), 
        min = acdbHostApplicationServices()->workingDatabase()->extmin();
        AcGePoint2d max_2d (max[X], max[Y]);
        AcGePoint2d min_2d (min[X], min[Y]);
        view.setCenterPoint (min_2d + (max_2d - min_2d) / 2.0);
        view.setHeight(max_2d[Y] - min_2d[Y]);
        view.setWidth (max_2d[X] - min_2d[X]);
        acedSetCurrentView (&view, NULL);
        acdbHostApplicationServices()->workingDatabase()->updateExt(TRUE);
}
static void SetDwgWindow_SetWindow(void) {
        //
        // Set Variables 
        //
        // Client Borders,Sliders,Ect.
        int Width = 0; // ViewAreaWidth(802) + 28 = Width = 830
        int Height = 0; // ViewAreaHeight(493) + 71 = Height = 564
        acedGetInt (_T("\nEnter a new width in pixels for the drawing window: "), &Width);
        acedGetInt (_T("\nEnter a new height in pixels for the drawing window: "), &Height);
        CRect rect (0, 0, 2 * Width, 2 * Height);
        CRect ChildRect (0, 0, Width, Height);
        AcGePoint3d Min (0, 0, 0);
        AcGePoint3d Max (830, 564, 0);
        //
        // Resize Document Frame
        //
        CWnd* DocFrame = acedGetAcadDwgView()->GetParent();
        DocFrame->MoveWindow (ChildRect);
        DocFrame->UpdateWindow ();
        zoomExtents();
        DocFrame->SendMessage(WM_SYSCOMMAND, SC_MINIMIZE, 0L);
        DocFrame->SendMessage(WM_SYSCOMMAND, SC_MAXIMIZE, 0L);
        DocFrame->SendMessage(WM_SYSCOMMAND, SC_RESTORE, 0L);
}//SetDwgWindow
 
 |