MFC+OSG说明文档1
- 格式:pdf
- 大小:219.37 KB
- 文档页数:5
建立MFC+OSG界面的说明文档打开VS2010开发环境,新建项目,选择MFC---MFC应用程序,这里项目名称为osgmfc,如下图:点击确定,出现如下界面:点击下一步应用程序类型选择单文档点击下一步默认设置,点击下一步默认设置,点击下一步默认设置,点击下一步默认设置,点击下一步去掉控件前面的勾,此处osg不需要用到点击完成,生成MFC的框架,如下:在编译后的OSG源文件里面,找到这个文件夹,将目录下,并相应的添加进工程。
如下图:在stdafx.h中添加#include <process.h>,如下图:在view的头文件中加入下面的语句#include "MFC_OSG.h"cOSG *mOSG;HANDLE mThreadHandle;如下图所示:这里,切换到类视图,如下在view类中(这里是CosgmfcView)添加WM_CREATE的消息响应,右键点击CosgmfcView,出现属性设置框,如下图:重写OnInitialUpdate函数,如下图在osgmfcView.cpp文件当中出现以下代码:按下图添加代码:最后,加入必要的库,如下图:编译,运行。
如果出现以下错误:1>c:\documents and settings\administrator\桌面\osgmfc\osgmfc\mfc_osg.cpp(153) : error C2665: “AfxMessageBox”: 2 个重载中没有一个可以转换所有参数类型,可定位到AfxMessageBox("Exit Rendering Thread");,将其注释掉编译成功,运行效果如下:成功建立MFC+OSG开发环境!。
vs2010创建MFC+OSG点击完成后,生成的框架如下:去如下路径找到这两个文件,MFC_OSG.cppMFC_OSG.h将这两个文件复制到前面建立的工程目录下,并相应的添加进工程,如下图拷完之后要修改一下源代码,首先在stdafx.h开头添加#include<process.h>这一行代码在***View.h文件中增加三行代码:#include"MFC_OSG.h"cOSG* mOSG;CRenderingThread* mThreadHandle;然后切换到类视图,如下在view类中(这里是Cearth_testView)添加WM_CREATE的消息响应,右键点击CosgmfcView,出现属性设置框,如下图:属性对话框在最右侧点击这个按钮才会出现下面的函数添加WM_CREATE的消息响应【一开始是空的,鼠标点击填写】重写OnInitialUpdate函数点击这个按钮会出现重写的函数重写OnInitialUpdate函数点击后面空白手动输入OnInitialUpdate则会在earth_testView.cpp中的末尾处出现以下两个函数按下图添加如下代码:mOSG = new cOSG(m_hWnd);mOSG->InitOSG("cessna.osg"); mThreadHandle = new CRenderingThread(mOSG); mThreadHandle->start();配置Release下的库目录包含目录以及依赖项包含目录:osg文件下include文件夹:E:\win10\osgearth\osg\include 库目录:osg文件下lib文件夹:E:\win10\ osgearth\osg\libOpenThreads.libosg.libosgDB.libosgFX.libosgGA.libosgManipulator.libosgParticle.libosgShadow.libosgSim.libosgTerrain.libosgText.libosgUtil.libosgViewer.lib然后Ctrl+F5运行后,出现如下窗口,即连接成功。
MFC原理结构说明MFC(Microsoft Foundation Class)是 Microsoft(微软)为Windows 系统提供的一套程序库,用于开发基于 Windows 操作系统的图形用户界面(GUI)应用程序。
本文将从原理和结构两个方面对 MFC 进行详细说明,以帮助读者更好地理解和应用 MFC 框架。
##一、MFC原理MFC 基于面向对象的思想,将应用程序开发过程中常用的功能封装成类,开发人员可以通过继承这些类并重写相应的函数来实现自定义的功能。
MFC 的核心是由一组 C++ 类组成的库,这些类封装了 Windows API 的复杂性,并提供了大量的应用程序开发工具和框架,简化了 Windows 应用程序的开发过程。
MFC 架构的核心是 CWinApp 类,它是整个应用程序的主类。
CWinApp 类集成了应用程序的生命周期管理、消息处理机制等功能,是 MFC 框架的入口点。
当应用程序启动时,会初始化 CWinApp 类的实例,然后调用它的 InitInstance 函数进行初始化操作,接着进入应用程序的消息循环过程。
消息循环过程中,CWinApp 类会接收并处理系统发送的各种消息,并根据消息的类型调用相应的函数进行处理。
在应用程序退出时,CWinApp 类会调用 ExitInstance 函数进行资源清理操作。
除了 CWinApp 类,MFC 还提供了一系列的窗口类(如 CFrameWnd、CDialog、CWnd等)用于创建和管理窗口。
这些类封装了窗口的创建、显示、响应用户输入等功能,开发人员只需通过继承这些类并重写相应的函数,就可以快速创建和管理窗口。
MFC 还提供了一些扩展类库,如 Doc/View 架构、多文件支持、打印和预览等功能。
Doc/View 架构是 MFC 应用程序中常用的一种架构,它将应用程序的逻辑数据(文档)和用户界面(视图)分离开来,开发人员可以将不同的文档类型和视图类型相互组合,实现复杂的应用程序。
第1章MFC概述 ................................................... 错误!未定义书签。
1.1 MFC是一个编程框架 ............................... 错误!未定义书签。
1.1.1 封装................................................. 错误!未定义书签。
1.1.2 继承................................................. 错误!未定义书签。
1.1.3 虚拟函数和动态约束..................... 错误!未定义书签。
1.1.4 MFC的宏观框架体系 .................... 错误!未定义书签。
1.2 MDI应用程序的构成................................ 错误!未定义书签。
1.2.1 构成应用程序的对象..................... 错误!未定义书签。
1.2.2 构成应用程序的对象之间的关系.错误!未定义书签。
1.2.3 构成应用程序的文件..................... 错误!未定义书签。
第2章MFC和Win32 ........................................... 错误!未定义书签。
2.1 MFC Object和Windows Object的关系... 错误!未定义书签。
2.2 Windows Object .......................................... 错误!未定义书签。
2.2.1 Windows的注册 ............................. 错误!未定义书签。
2.2.2 MFC窗口类CWnd ......................... 错误!未定义书签。
MFC使用教程范文MFC(Microsoft Foundation Classes)是微软公司为Windows操作系统开发的一套面向对象的应用程序框架,用于简化Windows应用程序的开发过程。
MFC提供了一系列的类和函数,开发者可以利用这些类和函数来创建、管理和控制Windows应用程序。
本文将为您介绍MFC的基本使用方法和步骤。
一、MFC的基本概念和组成MFC是建立在Windows API之上的一层封装,它提供了一系列的类和函数,开发者可以利用这些封装好的类和函数来开发Windows应用程序。
MFC的组成包括:应用程序类、窗口类、对话框类和视图类。
1.应用程序类:MFC的应用程序类是整个应用程序的入口点,它包含了应用程序的初始化和销毁过程,以及主消息循环。
2.窗口类:窗口类用于创建和管理应用程序中的窗口,包括主窗口、子窗口和对话框等。
3.对话框类:对话框类用于创建和管理应用程序中的对话框,对话框是一种特殊的窗口,用于和用户进行交互。
4.视图类:视图类用于创建和管理应用程序中的视图,视图是应用程序中显示数据的区域。
二、MFC应用程序的创建步骤下面将介绍MFC应用程序的创建步骤。
1. 打开Visual Studio IDE,并选择"创建新项目"。
2.在"创建新项目"对话框中,选择"C++"->"MFC",点击"下一步"。
3.在"应用程序信息"对话框中,填写应用程序的名称和位置等信息,点击"完成"。
4. Visual Studio将自动创建一个MFC应用程序模板,并打开主窗口的代码和界面文件。
5.在主窗口的代码文件中,可以编写处理消息和事件的代码。
6.在主窗口的界面文件中,可以通过拖拽控件来设计应用程序的界面。
7.编译并运行应用程序,查看效果。
三、MFC应用程序的消息处理MFC应用程序中的消息处理是通过重载消息处理函数来实现的。
mfc使用手册MFC(Microsoft Foundation Class Library)是微软提供的一个类库,用于简化Windows应用程序的开发过程。
以下是MFC使用手册的简要介绍:1. 简介:MFC是一个基于C++的类库,它提供了许多用于构建Windows应用程序的类和函数。
通过使用MFC,开发人员可以快速地构建具有一致外观和感觉的应用程序,并利用Windows平台提供的各种功能。
2. 安装和配置:在开始使用MFC之前,您需要安装Microsoft Visual Studio并确保安装了MFC开发工作负载。
安装完成后,您需要创建一个新的MFC项目或打开一个现有的MFC项目。
3. 创建MFC应用程序:要创建一个新的MFC应用程序,您需要使用Microsoft Visual Studio的向导。
选择“File”菜单中的“New”选项,然后选择“Project”。
在弹出的对话框中,选择“MFC Application”并按照向导的提示完成应用程序的创建过程。
4. MFC类库:MFC提供了许多用于构建应用程序的类和函数。
以下是一些常用的MFC类:CWinApp:应用程序对象类,用于管理应用程序级别的操作,例如初始化应用程序和退出应用程序。
CWnd:窗口类,用于管理窗口的各种操作,例如创建窗口、处理消息和绘制窗口。
CDocument:文档类,用于管理应用程序中的文档数据。
CView:视图类,用于管理应用程序中的视图,例如显示文档数据和与用户交互。
5. MFC消息处理:MFC使用消息传递机制来处理用户与应用程序的交互。
每个窗口和控件都处理一组预定义的消息,例如鼠标点击、键盘输入和窗口大小改变等。
通过覆盖类中的虚函数,您可以定义应用程序如何响应这些消息。
6. MFC对话框和控件:MFC提供了许多内置的对话框和控件,例如按钮、文本框和列表框等。
您可以使用对话框编辑器来创建对话框,并将控件拖放到对话框中。
MFC控件使用说明书未央1117 2018-04-19 10:10:18VC++控件工具箱:2 按钮(Button):用来接收用户的命令,应用程序在接收到用户命令后,通常需要进行一些后台工作。
按钮可以响应单击或双击动作,在按钮接收到鼠标动作后,向其父窗口发送相应的控件通知,用户可以对这些控件通知进行消息映射,从而进行相应的处理。
在一个对话框中,可以定义一个默认按钮,这只要选中按钮属性中的“Default”选项。
如果在对话框活动的时候按下了Enter键,则等同于单击了默认按钮。
MFC提供了CButton类支持按钮控件。
3 复选框(Check Box):用来显示某种可能的选择,该项选择是独立的,用户可以选中或取消该选项。
在选项被选中的时候核选标记出现,选项被取消时核选标记消失。
MFC中由CButton类对核选框进行支持,用户可以通过SetCheck()函数和GetCheck()函数设置或获取核选框当前的状态。
[cpp]1.BST_UNCHECKED==((CButton*)GetDlgItem(IDC_CHECK_ RES1))->GetCheck()[cpp]1.((CButton*)GetDlgItem(IDC_CHECK_RES1))->SetCheck(true);4 编辑框(Edit Control):用来接收用户输入的字符串。
通过选择编辑框的选项,编辑框可以接收字符串、数字、密码等;编辑框还可以设置成接收多行字符串的模式;可以自动进行大小写转换。
编辑框可能向其父窗口发送多种控件通知,如果用户需要,可以对这些控件通知进行处理。
MFC提供了CEdit类支持编辑框控件。
[cpp]1.GetDlgItem(IDC_***)->SetWindowT ext(Cstring);2.GetDlgItem(IDC_***)->GetWindowText(Cstring);5 组合框(Combo Box):列表框和编辑框的组合,用户除了可以在列表中对已经存在的选项进行选择外,还可以输入新的选择。
MFC使用教程范文MFC(Microsoft Foundation Classes)是微软开发的一种用于Windows操作系统的C++类库,可用于开发图形用户界面(GUI)应用程序。
MFC使用教程将指导您如何使用MFC库来创建基于Windows的应用程序。
第一部分:基本概念和环境设置(200字)在开始使用MFC之前,您需要了解一些基本概念和环境设置。
首先,MFC是一个C++类库,包含了各种用于构建Windows应用程序的类和函数。
它提供了处理窗口、控件、消息等等的功能。
其次,您需要一个C++编译器和开发环境,如Visual Studio。
确保您已经安装了Visual Studio以及所需的MFC组件。
第二部分:创建一个MFC应用程序(300字)步骤1:打开Visual Studio并选择创建“新项目”。
步骤2:选择MFC应用程序向导,并输入项目名称和位置。
步骤3:选择应用程序类型(单文档/多文档/对话框)。
步骤4:在向导的下一步中,选择所需的特性和选项。
步骤5:在应用程序向导中完成剩余设置,并单击“完成”来创建项目。
步骤6:Visual Studio将自动生成与所选应用程序类型相对应的源代码和资源文件。
第三部分:了解主要概念(300字)在了解如何使用MFC库之前,您需要了解一些主要概念。
首先是对话框,它是一个用于显示和与用户交互的窗口。
其次是框架窗口,用于包含和管理窗口的集合。
控件是用于接收和显示用户输入的界面元素,如按钮、文本框等。
消息是在窗口间传递的信息,用于处理用户输入和应用程序的操作。
第四部分:使用MFC库创建控件和处理消息(400字)步骤1:在资源视图中选择对应的对话框或窗口。
步骤2:在工具箱中选择所需的控件,并将其拖放到对话框或窗口上。
步骤3:在类视图中选择对应的对话框或窗口类。
步骤4:在类向导中选择“消息映射”选项,并添加所需的消息处理函数。
步骤5:在消息处理函数中编写代码来处理控件的事件或用户输入。
MFC入门教程范文MFC(Microsoft Foundation Classes)是微软公司为Windows操作系统开发的一套C++类库,用于快速开发Windows应用程序的框架。
MFC 提供了丰富的类和函数,可以用来创建窗口、对话框、按钮等控件,并实现与用户的交互。
本文将为你介绍MFC的基本概念和一些常用的操作。
一、MFC的基本概念1. 窗口类(CWnd):MFC中的窗口类是所有控件和对话框的基类,它提供了创建和管理窗口的功能。
2. 控件类(CButton、CEdit等):MFC提供了各种控件类,用于创建和管理各种窗口控件,如按钮、文本框、列表框等。
3. 对话框类(CDialog):对话框是一种特殊的窗口,用于显示用户界面和处理用户输入。
MFC提供了对话框类,用于创建和管理对话框。
4. 消息映射(Message Map):MFC中的消息映射是一种将窗口消息与相应函数关联起来的机制。
通过消息映射,可以方便地处理各种用户输入事件,比如鼠标点击、键盘按键等。
二、MFC的基本操作1. 创建一个MFC应用程序:打开Visual Studio,选择"创建新项目",在向导中选择"MFC应用程序",填写项目名称和保存路径,点击"确定"完成创建。
在进行项目设置时,可以选择要使用的MFC版本和应用程序类型。
2. 创建窗口:在MFC应用程序中,可以使用CWnd类的Create函数来创建一个窗口。
首先定义一个CWnd对象,调用Create函数指定窗口样式、位置和大小等参数,最后调用ShowWindow函数显示窗口。
3. 创建控件:在MFC应用程序中,可以使用各种控件类来创建窗口控件。
首先定义一个控件类对象,调用Create函数指定控件样式、位置和大小等参数,最后调用ShowWindow函数显示控件。
4.处理消息:在MFC应用程序中,可以通过重写消息处理函数来处理各种用户输入事件。
MFC与OSG结合说明文档
1.环境配置
OSG版本问题说明,现在我所提供的预编译好的OSG的版本是2.8.2和2.9.9,其中2.8.2是基于VS2005(SP1)编译的,2.9.9版本是基于VS2008(SP1)编译的,所以,用哪个预编译的版本需要相应的VS。
如果是自己的VS不是以上版本,可以通过下载OSG的源代码自己编译(相关工具,Cmake在svn 里面有)。
建议步骤如下:先安装2.8.2版本,那个会把环境变量设置好,然后会有OSG 的源代码,还有示例程序。
如果是VS2005版本,到此配置即可。
如果是VS2008的,那么可以修改环境变量中的OSG_HOME变量,指定到2.9.9的位置。
【注意OSG中不能存在中文路径,稍后版本解决,所以,osg的位置,包括模型的位置,都不要存在中文的东西】
2.配置VS
上图说明问题:首先在【工具】->【选项】->【项目和解决方案】->【VC++目录】设置一下包含文件和库文件,如下图设置。
3.开始新建MFC工程。
一般是单文档。
然后我一般采用多字符集模式,要不然用unicode的话,会经常有一个_T 的问题。
之后就是在工程的依赖里面设置依赖库。
【项目】->【属性】->【链接器】->【输入】->【附加依赖库】如下图:
一般是添加如下的依赖:
release: OpenThreads.lib osg.lib osgDB.lib osgFX.lib osgGA.lib osgManipulator.lib osgParticle.lib osgShadow.lib osgSim.lib osgTerrain.lib osgText.lib osgUtil.lib osgViewer.lib
Debug: OpenThreadsd.lib osgd.lib osgDBd.lib osgFXd.lib osgGAd.lib osgManipulatord.lib osgParticled.lib osgShadowd.lib osgSimd.lib osgTerraind.lib osgTextd.lib osgUtild.lib osgViewerd.lib
到此为止,配置的已经完成。
需要开始osg的代码了。
到程序的源码里面找到如下的一个程序:
然后把里面的
这两个文件拷贝到你新建的工程下面,然后添加到工程中。
之后,需要开始修改一些东西。
首先在stdafx.h中添加#include<process.h>这一句代码
然后在工程的view类的头文件中添加如下代码:
【注意,此处的OSG的类名被我改了,这个看着更舒服】//核心osg对象
CCoreOSG * mOSG ;
//线程句柄
HANDLE mThreadHandle ;
然后,就是在view类中添加WM_CREATE的消息响应,以及重写OnInitialUpdate函数,全部可以在属性中添加
然后,在oncreate和onInitialUpdate中添加如下代码:
// CosgTestView 消息处理程序
void CosgTestView::OnInitialUpdate()
{
CView::OnInitialUpdate();
// TODO: 在此添加专用代码和/或调用基类
mOSG->InitOSG("cow.osg");
mThreadHandle = (HANDLE)_beginthread(&CCoreOSG::Render, 0, mOSG) ;
}
int CosgTestView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: 在此添加您专用的创建代码
mOSG = new CCoreOSG(m_hWnd);
return 0;
}
至此,一个OSG和MFC结合的helloWorld程序就完成了。
最后希望和预祝各位OSG路途快乐。