鼠标滚轮实现单文档视图的放大与缩小
其主要原理是利用SetWindowExt和SetViewportExt函数来动态调节窗口区和视口区的比例,设窗口区与视口区之间的比例系数为m_delta,鼠标滚轮每滚动一次,在视图View类的响应函数OnPrepareDC中就改变一次m_delta,然后调用OnPaint函数重新绘图,这样看起来就实现了视图的放大与缩小。
其主要步骤如下:
1. 建立单文档视图工程,比如SingleDoc.proj;
2. 在CSingleDocView类中添加float型成员变量m_delta,在该类构造函数中初始化m_delta = 1.0,m_delta即为比例系数,初始化其为1表示窗口与视口大小相同;
3. 向CSingleDocView类中添加消息响应函数OnPrepareDC,向其中添加如下代码:
<span style="font-size:18px;"> // TODO: 在此添加专用代码和/或调用基类
CView::OnPrepareDC(pDC, pInfo);
CRect rectClient;
GetClientRect(rectClient); // 得到客户区大小
pDC->SetMapMode