zoukankan      html  css  js  c++  java
  • GreenOpenPaint的实现(二)打开显示图片

    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();
    }
    现在已经可以打开图片,并且默认就是支持缩放的。而且支持滚动。
     





  • 相关阅读:
    python+appium真机运行登录例子
    通过aapt查看apk包名和第一个启动的activity
    cf 17D Notepad 欧拉降幂
    主席树入门
    D2. Optimal Subsequences (Hard Version) 主席树
    cf 697C Lorenzo Von Matterhorn 思维
    2018南京现场赛K 随机输出
    2018徐州现场赛A
    洛谷p1137 模拟退火
    2018南京现场赛D 模拟退火
  • 原文地址:https://www.cnblogs.com/jsxyhelu/p/6353618.html
Copyright © 2011-2022 走看看