`

VC2010 MFC多文档项目中在带滚动条的窗口中显示图像

 
阅读更多

 

首先创建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

 

 

 

 

 

分享到:
评论

相关推荐

    VC2010 MFC 滚动条窗口显示图像

    本教程将深入探讨如何在MFC多文档项目中利用CScrollView类和CImage类来显示图像,并实现带有滚动条的功能。 首先,我们需要了解CScrollView类。CScrollView是MFC提供的一种视图类,它扩展了CView类,专门用于处理大...

    MFC实现的滚动条程序

    在本文中,我们将深入探讨如何使用Microsoft Foundation Class (MFC) 库在Visual C++ 6.0中实现一个简单的滚动条程序。MFC 是微软为Windows应用程序开发提供的一组C++类库,它简化了Windows API的使用,使得开发者...

    vc改变CListCtrl控件中滚动条的颜色

    CListCtrl控件是MFC库中的一个重要组件,它用于显示列表项,包括文本、图像等信息。然而,系统默认的滚动条颜色可能不符合某些特定设计的需求,因此开发者可能需要自定义滚动条的颜色来匹配应用程序的整体风格。本篇...

    MFC单文档心电图模拟程序vc6.0

    在本文中,我们将深入探讨如何使用Microsoft Foundation Class (MFC) 框架构建一个单文档心电图模拟程序,特别是在VC6.0环境下。MFC是微软为Windows应用程序开发提供的一套C++类库,它封装了许多Windows API,简化了...

    VS2010之MFC入门到精通教程[鸡啄米]-书签版.pdf

    常用控件是MFC编程中最基本的控件,本教程介绍了常用控件的应用,包括静态文本框、编辑框、按钮控件、列表框控件、组合框控件、滚动条控件、图片控件、列表视图控件、树形控件、标签控件等。 菜单、工具栏与状态栏...

    单幅图像打开,可放大缩小,有滚动条,通过输入比例尺,可测距

    在这个项目中,我们使用MFC的单文档界面(Single Document Interface, SDI)模板,它提供了一个基础框架,用于显示和操作单个图像。 2. **图像加载**: MFC的CFile类可以帮助我们读取图像文件。结合OpenCV的imread...

    VS2010之MFC入门到精通教程

    ### VS2010之MFC入门到精通教程知识点概览 #### 第一部分:VS2010/MFC开发环境 - **VS2010/MFC编程入门之前言** - 引入MFC(Microsoft Foundation Classes)的概念,解释其在Windows应用程序开发中的重要性。 - ...

    MFC-CScrollView.rar_CSCrollView_MFC中CScrollView_mfc cscrollview

    在Microsoft Foundation Class (MFC) 库中,`CScrollView` 类是一个非常重要的组件,它是视图类 `CView` 的派生类,主要用于处理大图像或大量数据的滚动显示。`CScrollView` 提供了自动滚动的功能,使得在有限的窗口...

    micro vc 6.0 MFC类库参考

    - `CScrollView`:自动处理滚动条的视图,适合显示大图像或数据。 - `CTabCtrl`:用于创建选项卡式视图。 4. **文档/视图架构(Document/View Architecture)**: - `CDocument`:存储应用程序的数据。 - `...

    VC考试总结复习2018|2014最新附带答案

    ***lientDC类用于管理窗口的客户区(Client Area),即窗口内部不包括边框、标题栏、菜单栏和滚动条等元素的部分。客户区通常是绘制窗口内容的地方。 ***lientDC类管理窗口客户区时,其坐标(0,0)点位于窗口的左上角...

    多文档VC和MAPX编程

    本主题将深入探讨如何在多文档界面(MDI)的VC项目中使用MapX进行编程。 首先,多文档界面(MDI)是一种用户界面设计模式,允许在一个应用程序窗口中同时打开和操作多个文档。在VC中,通过MFC(Microsoft ...

    MFC控件整理文档

    本文将深入探讨MFC中常用的控件及其使用方法,特别关注Windows标准控件,并通过VC6.0代码示例进行说明。 #### Windows标准控件概览 Windows标准控件是由Windows操作系统提供的,用于创建用户界面的基本组件。MFC...

    VC实现图像的简单功能(显示,放缩,移动,双缓存)

    项目中的"ImageView"可能是一个包含以上功能的类,它封装了图像显示、放缩、移动和双缓存的逻辑,使得在单文档应用程序中使用这些功能变得更加方便。 总的来说,这个项目为学习和理解CImage类以及图像处理的基本...

    VC中Dialog添加View(ScrollView)

    而View是CView类的实例,通常作为文档/视图架构的一部分,显示在MDI(多文档接口)或SDI(单文档接口)应用程序的主窗口中。在对话框中添加View,可以让我们将复杂的功能或者自定义的界面元素嵌入到对话框中。 步骤...

    基于mfc vc 位图查看器

    为此,需要为视图类添加水平和垂直滚动条,并在`OnHScroll`和`OnVScroll`消息处理函数中更新显示区域。 6. **优化性能** - 考虑使用位图缓存来提高性能。在用户滚动或缩放时,不是每次都重新绘制整个位图,而是只...

    MFC框架应用中的画图操作

    在Microsoft Foundation Classes (MFC)框架中,进行画图操作主要涉及到CView类及其派生类,这是MFC为Visual C++应用程序提供的视图组件,用于显示和编辑文档。MFC是一个面向对象的库,它封装了Windows API,使得...

    VC 导航和窗口分割、皮肤 6.0版

    在VC++编程环境中,"VC 导航和窗口分割、皮肤 6.0版"是一个关于增强用户界面体验和管理程序窗口布局的专题。在这个版本中,开发者可能引入了新的功能,如导航面板和可自定义的窗口分割,以及SkinH换肤技术,以提升...

    VC分割窗口_CSplitterWnd

    CSplitterWnd是Microsoft Visual C++ MFC库中的一个关键组件,它允许开发者在应用程序中创建可分割的窗口,使得用户可以方便地在一个界面中同时查看和操作多个相关的数据视图。这个技术主要应用于那些需要多面板显示...

    VC++ 单文档视图切分

    总之,VC++中的单文档视图切分是通过MFC库中的CSplitterWnd类来实现的,它允许开发者在一个窗口内创建多个视图,以提供更加灵活和高效的用户界面。这个技术在开发多面板的应用程序时非常有用,例如代码编辑器、...

    vc6,分割视图显示位图

    在这个场景中,我们讨论的是如何在多视图(Multiple Document Interface, MDI)应用程序中实现分割视图并显示位图。MDI应用允许用户在一个窗口内打开多个子窗口,每个子窗口称为一个视图,可以独立显示和操作不同的...

Global site tag (gtag.js) - Google Analytics