显示图像实际大小时使用滚动条
视图类的基类是CView不支持滚动条,要把CView改为CScrollView。
共有三步以实现:
void CMyAppView::OnInitialUpdate() { CScrollView::OnInitialUpdate(); CSize sizeTotal; sizeTotal.cx = sizeTotal.cy = 600; //看不到滚动条把数值加大 SetScrollSizes(MM_TEXT, sizeTotal); }
(3)把MyAppView.h和MyAppView.cpp里面,用查找/替换的方法,将CView改为CScrollView。
void COPMView::OnDraw(CDC* pDC) { COPMDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here CImage &img=pDoc->m_image; CRect rect;//定义一个矩形对象 GetClientRect(rect);//获取视图窗口的客户区大小 rect.right=img.Width(); //CvvImage:Width()计算图像的宽度,单位像素 rect.bottom=img.Height();//CvvImage:Height()计算图像的高度,单位像素 CSize sizeTotal(rect.right,rect.bottom); SetScrollSizes(MM_TEXT, sizeTotal);//设置滚动条的位置 img.DrawToHDC(pDC->m_hDC, rect); }