首页 > 其他分享 >GreenOpenPaint的实现(二)打开显示图片

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

时间:2022-12-22 12:33:44浏览次数:40  
标签:GreenOpenPaint lpszPathName CGreenOpenPaintDoc fScaleFactor image 添加 打开 pDoc 图片

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:
CMainFrame* m_pParent;
CGreenOpenPaintDoc* m_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(CView* pSender, LPARAM lHint, CObject* pHint)
{
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的实现(二)打开显示图片_输入输出函数


 






标签:GreenOpenPaint,lpszPathName,CGreenOpenPaintDoc,fScaleFactor,image,添加,打开,pDoc,图片
From: https://blog.51cto.com/jsxyhelu2017/5962545

相关文章