(6)通过ClassWizard 将视类的OnInitialUpdate 函数删除,并删除CPP 文件中遗留的代码。
(7)通过ClassWizard 响应视类的OnUpdate 函数,根据图片大小对主窗口和滚动条进行设置,代码如下:
void CPicSeeView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint)
{
CPicSeeDoc* pDoc = GetDocument();
//获得主窗口指针
CFrameWnd* pParentFrame = GetParentFrame();
BITMAP BitMap;
if (!pDoc->GetHandle())
return;
//获得位图结构
pDoc->GetBitmap(&BitMap);
//设置滚动条范围
SetScrollSizes(MM_TEXT, CSize(BitMap.bmWidth, BitMap.bmHeight));
//重新规划主窗口大小
pParentFrame->RecalcLayout();
ResizeParentToFit();
}
(8)在视的OnDraw 函数中将位图显示出来:
void CPicSeeView::OnDraw(CDC* pDC)
{
CPicSeeDoc* pDoc = GetDocument();
BITMAP BitMap;
CDC DCMem;
ASSERT_VALID(pDoc);
if (!pDoc->GetHandle())
return;
//创建内存设备场景
if (!DCMem.CreateCompatibleDC(pDC))
TRACE0("DCMem.CreateCompatibleDC failed\n");
pDoc->SelectBitmap(&DCMem);
pDoc->GetBitmap(&BitMap);
//将位图拷贝到显示设备场景中,进行显示
if (!pDC->BitBlt(0, 0, BitMap.bmWidth, BitMap.bmHeight, &DCMem, 0, 0, SRCCOPY))
TRACE0("BitBlt failed\n");
pDoc->SelectOldBitmap(&DCMem);
DCMem.DeleteDC();
}
随后会有完整源码包可下载。
已读:次
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-27467-2.html
我红旗系列远中近距离导弹就位
智者务其实
他对淘宝的假货