首页 > 其他 > 详细

GreenOpenPaint的实现(二)打开显示图片

时间:2017-01-27 07:19:20      阅读:260      评论:0      收藏:0      [点我收藏+]

1、DOC中添加,核心图片文件保存在这里。之所以不用Mat,是因为CVVImage有更好的输入输出函数。

我这里直接使用了public
public:
    CvvImage m_image;
2、重载打开
//将文件的处理集中在DOC中是非常正确的方法
BOOL CGreenOpenPaintDoc::OnOpenDocument(LPCTSTR lpszPathName)
{
    if (!CDocument::OnOpenDocument(lpszPathName))
        return FALSE;
    m_image.Load(CT2CA(lpszPathName));
    //计算m_fScaleFactor
    m_fScaleFactor = ZOOM_NORMAL;
    return TRUE;
}
3、view中添加变量。主要添加头文件。
private:
    CMainFramem_pParent;
    CGreenOpenPaintDocm_pDoc;
    CRect rectBackground;
4、重构oninitupdate ,onupdate ,onDraw
//初始化
void CGreenOpenPaintView::OnInitialUpdate()
{
    m_pParent = ((CMainFrame*)GetParentFrame());
    m_pDoc =((CGreenOpenPaintDoc*) GetDocument());
    OnUpdate(NULL, 0, NULL);
    CScrollView::OnInitialUpdate();
}
 
void CGreenOpenPaintView::OnUpdate(CViewpSenderLPARAM lHintCObjectpHint)
{
    SetScrollSizes(MM_TEXT,
        CSize(int(m_pDoc->m_image.Width()*m_pDoc->m_fScaleFactor),
        int(m_pDoc->m_image.Height()*m_pDoc->m_fScaleFactor)));
 
    Invalidate();
}
现在已经可以打开图片,并且默认就是支持缩放的。而且支持滚动。
技术分享
 





GreenOpenPaint的实现(二)打开显示图片

原文:http://www.cnblogs.com/jsxyhelu/p/6353618.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!