mfc运行流程
孙鑫MFC视频 笔记

/*CDC *pDC=GetDC();
pDC->MoveTo(m_ptOrigin);
pDC->LineTo(point);
ReleaseDC(pDC);必须成对使用。*/
//CClientDC dc(this);
/*CClientDC dc(GetParent());
3)用CClientDC
4)用CWindowDC,用它甚至可以整个屏幕区域画线。
下面是上面4种方法的代码
/*HDC hdc;
hdc=::GetDC(m_hWnd);
MoveToEx(hdc,m_ptOrigin.x,m_ptOrigin.y,NULL);
LineTo(hdc,point.x,point.y);
12.GetDC()与ReleaseDC()要成对使用,否则会内存泄漏。同样,BeginPaint()与EndPaint()。
13.GetStockObject()得到画笔、画刷、字体、调色板的句柄,使用时必须用类型转换。
14.什么时候用NULL,什么时候用0.答,对指针赋值时用NULL,对变量赋值时用0.
}
而在BOOL CTestApp::InitInstance()中的代码
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CTestDoc),
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);此处不需要ReleaseDC,因为CClientDC会自动释放DC*/
MFC程序执行过程

很是空闲最近.转载一些东西吧..就当是复习...再不看看,就忘光了MFC 应用程序的操作步骤可归结为四步:(1) 创建应用程序对象theApp(2) 执行MFC提供的WinMain()函数(3) WinMain()调用InitInstance()函数,此函数创建文档模板,主框架窗口,文档和视图(4) WinMain()调用Run()函数,此函数执行主消息循环,以获取和分派Windows消息。
WinMain()是函数的入口点,该函数的主要任务是完成一些初始化的工作和维护了一个消息循环。
他们的工作流程如下:入口(WinMain())---->MyRegisterClass()---->InitInstance ()--->while消息循环。
函数由入口开始执行,之后调用 MyRegisterClass()注册窗口类,之后InitInstance ()生成并显示窗口,这样之后,就完成了一个窗口的初始化工作了(当然,在MyRegisterClass(),InitInstance ()中都需要调用相应的API函数来具体的实现),然后就是维护消息循环,至此,程序的基本结构就差不多建立了。
以后程序的运作就靠个消息循环来推动了.1、创建Application object对象theApp程序一开始生产一个(且只有一个)Application object对象theApp,也即一个CWinApp对象,这个全局对象一产生,便执行其构造函数,因为并没有定义CMyWinApp构造函数,所以即执行CWinApp类的构造函数。
该函数定义于APPCORE.CPP第75行,你可以自己搜出来啃一啃,因此,CWinApp之中的成员变量将因为theApp这个全局对象的诞生而获得配置与初值。
2、WinMain登场用SDK编程序时,程序的入口点是WinMain函数,而在MFC程序里我们并没有看到WinMain函数,哦!~ 原来她是被隐藏在MFC代码里面了。
MFC_OnFileNew_OnFileOpen过程分析代码

AfxMessageBox(AFX_IDP_FAILED_TO_CREATE_DOC);
return;
}
CDocTemplate* pTemplate = (CDocTemplate*)m_templateList.GetHead();/*获得
第一个文档模板,对于单文档只有一个文档模板*/
if (m_templateList.GetCount() > 1)// 对单文档这段没用 {
CDocument* pDocument = (CDocument*)m_pDocClass->CreateObject(); if (pDocument == NULL)
{
TRACE1("Warning: Dynamic create of document type %hs failed.\n",
其
实
是
调
用
CMultiDocTemplate::OpenDocumentFile 函数下面祥述这里,因为在 CDocTemplate 类中这
个函数是一个纯虚函数*/ // if returns NULL, the user has already been alerted
} 注:如果跳过此函数而手动操作直接进入 pTemplate->OpenDocumentFile(),那么文档模版 列表选择对话框也就不会出现了. 3. CDocument* CMultiDocTemplate::OpenDocumentFile(LPCTSTR lpszPathName,BOOL bMakeVisible) {
{
TRACE0("Error:
you
must
override
MFCsocket网络编程(流程示例)

MFCsocket⽹络编程(流程⽰例)MFC socket⽹络编程(流程⽰例)1.TCP流式套接字的编程步骤在使⽤之前须链接库函数:⼯程->设置->Link->输⼊ws2_32.lib,OK!服务器端程序:1、加载套接字库2、创建套接字(socket)。
3、将套接字绑定到⼀个本地地址和端⼝上(bind)。
4、将套接字设为监听模式,准备接收客户请求(listen)。
5、等待客户请求到来;当请求到来后,接受连接请求,返回⼀个新的对应于此次连接的套接字(accept)。
6、⽤返回的套接字和客户端进⾏通信(send/recv)。
7、返回,等待另⼀客户请求。
8、关闭套接字。
客户端程序:1、加载套接字库2、创建套接字(socket)。
3、向服务器发出连接请求(connect)。
4、和服务器端进⾏通信(send/recv)。
5、关闭套接字。
服务器端代码如下:#include <Winsock2.h>//加裁头⽂件#include <stdio.h>//加载标准输⼊输出头⽂件void main(){WORD wVersionRequested;//版本号WSADATA wsaData;int err;wVersionRequested = MAKEWORD( 1, 1 );//1.1版本的套接字err = WSAStartup( wVersionRequested, &wsaData );if ( err != 0 ) { return; }//加载套接字库,加裁失败则返回if ( LOBYTE( wsaData.wVersion ) != 1 ||HIBYTE( wsaData.wVersion ) != 1 ){WSACleanup( );return;}//如果不是1.1的则退出SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0);//创建套接字(socket)。
基于MFC的图像处理程序的设计研究

第7卷 第15期 2007年8月167121819(2007)1523690205 科 学 技 术 与 工 程Science Technol ogy and Engineering Vol .7 No .15 Aug .2007 2007 Sci .Tech .Engng .基于M FC 的图像处理程序的设计研究付同堂1,2 苏秀琴2 刘 莹1,2 郝 伟1,2 李 哲1,2(中国科学院研究生院1,北京1000392;中国科学院西安光学精密机械研究所2,西安710068)摘 要 介绍了使用M FC 进行图像处理程序设计的相关概念和方法,并通过分析图像处理程序的工作原理和系统结构,针对当前图像处理程序工作效率低、处理速度慢的问题,提出了一种基于多线程技术和MFC 文档视图结构的图像处理程序的设计方法。
该设计采用了线程同步的缓冲结构,具备了多线程并行处理能力,并充分利用了双核处理器的硬件优势。
最终实验表明,采用该设计实现的图像处理程序响应迅速、处理效率很高,为MFC 在图像处理领域的应用开发提供了一种良好的解决方案。
关键词 程序设计 M FC 多线程 并行化算法 数字图像处理中图法分类号 T N317.4; 文献标识码 A2007年4月5日收到第一作者简介:付同堂(1981—),男,山东潍坊人,硕士研究生,研究方向:高速图像处理、程序设计。
随着光电设备和计算机硬件的高速发展,数字图像处理技术在PC 平台上的应用已经十分广泛。
通常情况下,这一类的分析处理过程往往需要使用专用软件来完成,最为常见的有Matlab 等。
虽然这一类专用软件功能丰富、强大,但仍存在一定的局限性。
以Matlab 为例,该软件几乎具备了各种数据类型,甚至数据模型的分析处理能力;但也正是由于其功能过于丰富,并不能很好地满足各个方面的需求。
另外,待处理的图像类型可能有很多种,如14位的红外传感器灰度图像,Matlab 不可能保证兼容所有的类型。
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提供了许多内置的对话框和控件,例如按钮、文本框和列表框等。
您可以使用对话框编辑器来创建对话框,并将控件拖放到对话框中。
天然气液化工艺流程综述

天然气液化工艺流程综述杨雪婷,阮家林(杭州福斯达实业集团有限公司)摘 要:阐述了天然气液化的主要工艺流程以及各种工艺流程的特点和使用范围,同时介绍了国内引进的几套典型的混合制冷的天然气液化装置,浅谈了LNG技术的发展趋势。
关键词:LNG流程组织;特点;使用范围; LNG发展液化天然气由于其环保性而成为取代其他燃料的最佳物质,其应用领域将扩大到发电、汽车用气、工业用气、城市居民用气、化工用气、以及冷能的综合利用等方面。
全球液化天然气贸易的迅猛发展促使LNG工业规模不断扩大,LNG工厂成倍增加。
目前已经有16个国家,建了30余座天然气液化厂,共有82条生产线已经或即将建成,单条生产线的最大生产能力达到780×104 t/a。
预计到2012年,全世界的天然气液化能力将达到(4~5)×108 t/a。
1 国内外天然气液化主要工艺流程介绍液化是LNG生产的核心。
目前,天然气液化工业成熟的工艺路线主要有3种类型:阶式制冷工艺、膨胀制冷工艺和混合冷剂制冷工艺。
1.1 阶式制冷流程阶式液化流程是最早应用于液化天然气的工艺流程,从20世纪60年代开始广泛应用于基本负荷型天然气液化装置。
典型的阶式制冷循环一般是由丙烷、乙烯和甲烷为制冷剂的3个单独的制冷系统串联组成,每个系统均有一套压缩机组。
净化后的原料天然气在3个制冷循环的冷却器中逐级冷却、冷凝、液化并过冷,经节流降压后获得低温常压液态天然气产品。
阶式制冷工艺技术成熟,制冷系统与天然气液化系统相互独立,各系统相互影响少,制冷剂均为纯物质,不存在配比问题,系统操作稳定好,同时,设计合理的级联式循环通常是在液化循环中耗能最小的。
但在该工艺中,各级制冷循环都需要单独的压缩机和制冷剂储存设备,设备投资成本高、流程复杂,管道与控制系统复杂,维护不便。
图1 典型阶式制冷工艺流程简图国内中原油田引进法国索菲公司技术于2001年建造的15×104m3/d的LNG装置采用了阶式制冷流程,但由于原料天然气压力高达12 MPa,利用高压节流制冷效应而省去了CH4制冷循环级。
VC++6[1].0入门【第三章、MFC编程概述】
![VC++6[1].0入门【第三章、MFC编程概述】](https://img.taocdn.com/s3/m/770bb56f58fafab069dc0213.png)
第三章 MFC 应用程序概述第3章 MFC 应用程序概述Microsoft Windows 是微软公司推出的一个应用于微机上的具有图形用户界面的多任务和多窗口的操作系统。
Windows 应用程序也称为窗口应用程序,所有的窗口应用程序都有着相同的窗口风格和菜单结构,用户界面友好,方便用户操作。
本章从剖析窗口应用程序的基本结构入手,继而介绍使用MFC 类库开发的应用程序框架结构,并介绍窗口应用程序运行的核心机制-消息映射。
学习了本章,你将对MFC 应用程序框架结构和运行机制有个整体的了解,为后面进入窗口应用程序开发打下良好的基础。
3.1 窗口应用程序概述窗口应用程序的开发一般采用可视化的面向对象的开发,可选择的窗口应用程序开发语言有Visual C++、Visual Basic 、Visual Java 、Dephi 等等。
无论采用哪一种开发语言,首先要了解窗口应用程序的基本机制。
3.1.1 窗口编程基础窗口应用程序运行于Windows 操作系统,Windows操作系统是一个多任务操作系统,因此窗口应用程序的组成,支持技术,基本运行机制等与DOS 应用程序有着本质的区别。
在学习开发窗口应用程序之前,先要对窗口应用程序有一个概念上的了解。
1. 窗口窗口是应用程序与用户进行交互的界面,应用程序通过窗口传递信息给用户,同样用户通过窗口输入数据,发布命令给应用程序。
Windows 界面包含了丰富的标准用户界面元素,包括窗口、图标、菜单、滚动条、对话框、控件和消息框等。
用户使用这些界面元素可以方便的与应用程序进行交互,一个典型的窗口外观如图3-1所示。
垂直滚动条控制菜单栏标题栏菜单栏关闭按钮最小化按钮最大化按钮客户区VC++6简明教程图3-1 Windows应用程序窗口组成在Windows编程中,各种窗口、菜单、按钮、对话框及程序模块等Windows的规范部件是按“对象”来组织的。
为了提高开发窗口应用程序的效率,微软公司为用户提供了大量能创建上述标准元素的API函数和C++类,并且以Windows API函数库和C++类库的形式提供给用户,以充分满足构成应用程序操作界面的需要。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
mfc运行流程
MFC程序的运行流程如下:
1.程序启动
程序启动时,首先会调用WinMain函数。
WinMain函数是MFC程序的入口函数,负责程序的初始化和运行。
2.程序初始化
在WinMain函数中,会调用CWinApp::InitInstance()函数进行程序的初始化。
CWinApp::InitInstance()函数负责注册窗口类、创建应用程序对象、创建窗口等工作。
3.窗口创建
在程序初始化完成后,会创建应用程序的窗口。
应用程序窗口是应用程序的入口,用户可以通过应用程序窗口与应用程序进行交互。
4.消息循环
在窗口创建完成后,会进入消息循环。
消息循环是MFC程序的核心,负责处理来自操作系统的消息。
5.程序退出
用户关闭应用程序时,会调用CWinApp::ExitInstance()函数退出程序。
CWinApp::ExitInstance()函数负责释放程序使用的资源。