首先创建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
分享到:
相关推荐
本教程将深入探讨如何在MFC多文档项目中利用CScrollView类和CImage类来显示图像,并实现带有滚动条的功能。 首先,我们需要了解CScrollView类。CScrollView是MFC提供的一种视图类,它扩展了CView类,专门用于处理大...
在本文中,我们将深入探讨如何使用Microsoft Foundation Class (MFC) 库在Visual C++ 6.0中实现一个简单的滚动条程序。MFC 是微软为Windows应用程序开发提供的一组C++类库,它简化了Windows API的使用,使得开发者...
CListCtrl控件是MFC库中的一个重要组件,它用于显示列表项,包括文本、图像等信息。然而,系统默认的滚动条颜色可能不符合某些特定设计的需求,因此开发者可能需要自定义滚动条的颜色来匹配应用程序的整体风格。本篇...
在本文中,我们将深入探讨如何使用Microsoft Foundation Class (MFC) 框架构建一个单文档心电图模拟程序,特别是在VC6.0环境下。MFC是微软为Windows应用程序开发提供的一套C++类库,它封装了许多Windows API,简化了...
常用控件是MFC编程中最基本的控件,本教程介绍了常用控件的应用,包括静态文本框、编辑框、按钮控件、列表框控件、组合框控件、滚动条控件、图片控件、列表视图控件、树形控件、标签控件等。 菜单、工具栏与状态栏...
在这个项目中,我们使用MFC的单文档界面(Single Document Interface, SDI)模板,它提供了一个基础框架,用于显示和操作单个图像。 2. **图像加载**: MFC的CFile类可以帮助我们读取图像文件。结合OpenCV的imread...
### VS2010之MFC入门到精通教程知识点概览 #### 第一部分:VS2010/MFC开发环境 - **VS2010/MFC编程入门之前言** - 引入MFC(Microsoft Foundation Classes)的概念,解释其在Windows应用程序开发中的重要性。 - ...
在Microsoft Foundation Class (MFC) 库中,`CScrollView` 类是一个非常重要的组件,它是视图类 `CView` 的派生类,主要用于处理大图像或大量数据的滚动显示。`CScrollView` 提供了自动滚动的功能,使得在有限的窗口...
- `CScrollView`:自动处理滚动条的视图,适合显示大图像或数据。 - `CTabCtrl`:用于创建选项卡式视图。 4. **文档/视图架构(Document/View Architecture)**: - `CDocument`:存储应用程序的数据。 - `...
***lientDC类用于管理窗口的客户区(Client Area),即窗口内部不包括边框、标题栏、菜单栏和滚动条等元素的部分。客户区通常是绘制窗口内容的地方。 ***lientDC类管理窗口客户区时,其坐标(0,0)点位于窗口的左上角...
本主题将深入探讨如何在多文档界面(MDI)的VC项目中使用MapX进行编程。 首先,多文档界面(MDI)是一种用户界面设计模式,允许在一个应用程序窗口中同时打开和操作多个文档。在VC中,通过MFC(Microsoft ...
本文将深入探讨MFC中常用的控件及其使用方法,特别关注Windows标准控件,并通过VC6.0代码示例进行说明。 #### Windows标准控件概览 Windows标准控件是由Windows操作系统提供的,用于创建用户界面的基本组件。MFC...
而View是CView类的实例,通常作为文档/视图架构的一部分,显示在MDI(多文档接口)或SDI(单文档接口)应用程序的主窗口中。在对话框中添加View,可以让我们将复杂的功能或者自定义的界面元素嵌入到对话框中。 步骤...
项目中的"ImageView"可能是一个包含以上功能的类,它封装了图像显示、放缩、移动和双缓存的逻辑,使得在单文档应用程序中使用这些功能变得更加方便。 总的来说,这个项目为学习和理解CImage类以及图像处理的基本...
为此,需要为视图类添加水平和垂直滚动条,并在`OnHScroll`和`OnVScroll`消息处理函数中更新显示区域。 6. **优化性能** - 考虑使用位图缓存来提高性能。在用户滚动或缩放时,不是每次都重新绘制整个位图,而是只...
在Microsoft Foundation Classes (MFC)框架中,进行画图操作主要涉及到CView类及其派生类,这是MFC为Visual C++应用程序提供的视图组件,用于显示和编辑文档。MFC是一个面向对象的库,它封装了Windows API,使得...
在VC++编程环境中,"VC 导航和窗口分割、皮肤 6.0版"是一个关于增强用户界面体验和管理程序窗口布局的专题。在这个版本中,开发者可能引入了新的功能,如导航面板和可自定义的窗口分割,以及SkinH换肤技术,以提升...
CSplitterWnd是Microsoft Visual C++ MFC库中的一个关键组件,它允许开发者在应用程序中创建可分割的窗口,使得用户可以方便地在一个界面中同时查看和操作多个相关的数据视图。这个技术主要应用于那些需要多面板显示...
总之,VC++中的单文档视图切分是通过MFC库中的CSplitterWnd类来实现的,它允许开发者在一个窗口内创建多个视图,以提供更加灵活和高效的用户界面。这个技术在开发多面板的应用程序时非常有用,例如代码编辑器、...
在这个场景中,我们讨论的是如何在多视图(Multiple Document Interface, MDI)应用程序中实现分割视图并显示位图。MDI应用允许用户在一个窗口内打开多个子窗口,每个子窗口称为一个视图,可以独立显示和操作不同的...