19,468
社区成员
发帖
与我相关
我的任务
分享
// 此处处理显示的新的坐标起点
CScrollView::OnPrepareDC(pDC, pInfo);
if(pDC->IsPrinting())
return; // 如果是打印则结束
ASSERT(m_Zoom > 0.0f); // 缩放因子合法性检查
int denom(1000); // 比例因子
int num((int)(m_Zoom * (float)denom)); // 放大倍数=缩放因子*比例因子
// 映射模式为设备模式
pDC->SetMapMode(MM_ANISOTROPIC);
pDC->ScaleWindowExt(denom, 1, denom, 1); // 改变窗口扩展值
num *= denom;
pDC->ScaleViewportExt(num, // X轴放大倍数
denom, // X轴比例因子
num, // Y轴放大倍数
denom); // Y轴比例因子
// 显示基准点位于m_orgPoint中
pDC->SetViewportOrg(OffsetDocument()); // ** 此处设置了显示的基点后,在随后的显示中被应用