VC2010 MFC多文档项目中在带滚动条的窗口中显示图像
2012-06-01 19:17
357 查看
首先创建MFC多文档项目XXX。
在XXXDoc.h中:
。。。。。。。。。。。
public:
CSize GetDocSize() const
{ return m_docSize; }
protected:
CSize m_docSize;//设置滚动条尺寸
public:
CImage m_srcImg; //用于载入图像
在XXXDoc.cpp 中:
BOOL CXXXDoc::OnOpenDocument(LPCTSTR lpszPathName)
{
if (!CDocument::OnOpenDocument(lpszPathName))
return FALSE;
// TODO: 在此添加您专用的创建代码
//载入图像
m_srcImg.Load(lpszPathName);
m_docSize=CSize((int)m_srcImg.GetWidth(), (int) m_srcImg.GetHeight());
return TRUE;
}
将XXXView.h和XXXView.cpp中的CView全部替换为CScrollView。
在CXXXView类中添加消息WM_HSCROLL和WM_VSCROLL并重写OnInitialUpdate()和OnDraw()。
void CXXXtView::OnInitialUpdate()
{
CScrollView::OnInitialUpdate();
// TODO: 在此添加专用代码和/或调用基类
SetScrollSizes(MM_TEXT, GetDocument()->GetDocSize());
}
void CXXXView::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CScrollView::OnHScroll(nSBCode, nPos, pScrollBar);
}
void CXXXView::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CScrollView::OnVScroll(nSBCode, nPos, pScrollBar);
}
void CXXXView::OnDraw(CDC* pDC)
{
CXXXDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: 在此处为本机数据添加绘制代码
if(pDoc->m_srcImg)
{
//用于图像缩放的时候
SetScrollSizes(MM_TEXT,CSize(pDoc->m_srcImg.GetWidth(),pDoc->m_srcImg.GetHeight()));
pDoc->m_srcImg.Draw(pDC->m_hDC, 0, 0);
}
}
源程序:http://download.csdn.net/detail/xinzheng_wang/4345562
在XXXDoc.h中:
。。。。。。。。。。。
public:
CSize GetDocSize() const
{ return m_docSize; }
protected:
CSize m_docSize;//设置滚动条尺寸
public:
CImage m_srcImg; //用于载入图像
在XXXDoc.cpp 中:
BOOL CXXXDoc::OnOpenDocument(LPCTSTR lpszPathName)
{
if (!CDocument::OnOpenDocument(lpszPathName))
return FALSE;
// TODO: 在此添加您专用的创建代码
//载入图像
m_srcImg.Load(lpszPathName);
m_docSize=CSize((int)m_srcImg.GetWidth(), (int) m_srcImg.GetHeight());
return TRUE;
}
将XXXView.h和XXXView.cpp中的CView全部替换为CScrollView。
在CXXXView类中添加消息WM_HSCROLL和WM_VSCROLL并重写OnInitialUpdate()和OnDraw()。
void CXXXtView::OnInitialUpdate()
{
CScrollView::OnInitialUpdate();
// TODO: 在此添加专用代码和/或调用基类
SetScrollSizes(MM_TEXT, GetDocument()->GetDocSize());
}
void CXXXView::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CScrollView::OnHScroll(nSBCode, nPos, pScrollBar);
}
void CXXXView::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CScrollView::OnVScroll(nSBCode, nPos, pScrollBar);
}
void CXXXView::OnDraw(CDC* pDC)
{
CXXXDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: 在此处为本机数据添加绘制代码
if(pDoc->m_srcImg)
{
//用于图像缩放的时候
SetScrollSizes(MM_TEXT,CSize(pDoc->m_srcImg.GetWidth(),pDoc->m_srcImg.GetHeight()));
pDoc->m_srcImg.Draw(pDC->m_hDC, 0, 0);
}
}
源程序:http://download.csdn.net/detail/xinzheng_wang/4345562
相关文章推荐
- VC2010 MFC多文档项目中在带滚动条的窗口中显示图像
- 【数字图像处理】 二.MFC单文档分割窗口显示图片
- MFC使用OpenCV在文档窗口中显示图像(支持多图片格式)
- MFC MDI项目如何一个文档显示多个不同视图类(比如文字和图表,各自拥有单独的框架窗口)
- VC 2010 + MFC + MDI多文档视图框架:视图框架窗口激活的消息通知
- 继承opencv的CImage类在MFC的单文档中编辑并显示图像的方法
- VC2010 中 MFC 的改进导致 XTP 停靠窗体无法显示的解决方法
- OPENCV+MFC单文档显示图像的两种方法
- MFC单文档中图像的显示与操作
- 继承opencv的CImage类在MFC的单文档中编辑并显示图像
- 彻底解决显示Opencv中Mat图像到Mfc窗口问题
- MFC子线程更改图像数据后更新主窗口图像显示方法
- mfc的项目里,想要实现点击tabcontrol的每个tab,切换到不同窗口显示不同摄像头的实时画
- VC2010 创建 MFC Open Cascade 单文档 3d view
- SDL和FFmpeg解码图像在MFC的规定的窗口中显示
- MFC建立一个文档视图的工程,然后在窗口上显示数据
- VC/MFC加滚动条显示大图片SetScrollRange()、SetScrollInfo()两种思路实现及其两者优劣比较
- MFC图像处理-图像扫描显示之基本窗口
- 在MFC中用halcon读图像,显示在主窗口和picture control中
- 让VC++编写的MFC多文档程序不自动创建空白窗口