mfc实现流程

合集下载

孙鑫MFC视频 笔记

孙鑫MFC视频 笔记
::ReleaseDC(m_hWnd,hdc);必须成对使用。*/
/*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程序执行过程

很是空闲最近.转载一些东西吧..就当是复习...再不看看,就忘光了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过程分析代码

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

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提供了许多内置的对话框和控件,例如按钮、文本框和列表框等。

您可以使用对话框编辑器来创建对话框,并将控件拖放到对话框中。

串行通信的基本原理

串行通信的基本原理

本文详细介绍了串行通信的基本原理,以及在Windows NT、Win98环境下用MFC 实现串口(COM)通信的方法:使用ActiveX控件或Win API.并给出用Visual C++6.0编写的相应MFC32位应用程序。

关键词:串行通信、VC++6.0、ActiveX控件、Win API、MFC32位应用程序、事件驱动、非阻塞通信、多线程.在Windows应用程序的开发中,我们常常需要面临与外围数据源设备通信的问题。

计算机和单片机(如MCS-51)都具有串行通信口,可以设计相应的串口通信程序,完成二者之间的数据通信任务。

实际工作中利用串口完成通信任务的时候非常之多。

已有一些文章介绍串口编程的文章在计算机杂志上发表。

但总的感觉说来不太全面,特别是介绍32位下编程的更少,且很不详细。

笔者在实际工作中积累了较多经验,结合硬件、软件,重点提及比较新的技术,及需要注意的要点作一番探讨。

希望对各位需要编写串口通信程序的朋友有一些帮助。

一.串行通信的基本原理串行端口的本质功能是作为CPU和串行设备间的编码转换器。

当数据从 CPU经过串行端口发送出去时,字节数据转换为串行的位。

在接收数据时,串行的位被转换为字节数据。

在Windows环境(Windows NT、Win98、Windows2000)下,串口是系统资源的一部分。

应用程序要使用串口进行通信,必须在使用之前向操作系统提出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)。

串口通信程序的流程如下图:二.串口信号线的接法一个完整的RS-232C接口有22根线,采用标准的25芯插头座(或者9芯插头座)。

25芯和9芯的主要信号线相同。

以下的介绍是以25芯的RS-232C为例。

①主要信号线定义:2脚:发送数据TXD; 3脚:接收数据RXD; 4脚:请求发送RTS; 5脚:清除发送CTS;6脚:数据设备就绪DSR;20脚:数据终端就绪DTR; 8脚:数据载波检测DCD;1脚:保护地; 7脚:信号地。

VC++6[1].0入门【第三章、MFC编程概述】

VC++6[1].0入门【第三章、MFC编程概述】

第三章 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++类库的形式提供给用户,以充分满足构成应用程序操作界面的需要。

MFC执行流程

MFC执行流程

MFC程序的执行过程细节START:--->1. 主程序入口在APPMODUL.CPP中_tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPTSTR lpCmdLine, int nCmdShow){// call shared/exported WinMainreturn AfxWinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow);}注:“_t”表示支持Unicode。

//入口的4个参数:(1)当前模块实例的句柄(2)前一个模块实例的句柄(3)任何命令行参数(4) 显示窗口标志2.Step1中调用的AfxWinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow);定义在“WINMAIN.CPP”中int AFXAPI AfxWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPTSTR lpCmdLine, int nCmdShow){ASSERT(hPrevInstance == NULL);int nReturnCode = -1;CWinThread* pThread = AfxGetThread();CWinApp* pApp = AfxGetApp(); //声明CWinApp类型指针变量,赋值为AfxGetApp()// AfxGetApp()是自描述的,返回与程序相关的应用程序对象// AFX internal initializationif (!AfxWinInit(hInstance, hPrevInstance, lpCmdLine, nCmdShow))//初始化框架,4个参数与WinMain()相同goto InitFailure; //注解1(关于AfxWinInit)//至此,如果AfxWinInit完成了上面的所有工作,应用程序和框架就完全初始化了。

mfc运行流程

mfc运行流程

mfc运行流程
MFC程序的运行流程如下:
1.程序启动
程序启动时,首先会调用WinMain函数。

WinMain函数是MFC程序的入口函数,负责程序的初始化和运行。

2.程序初始化
在WinMain函数中,会调用CWinApp::InitInstance()函数进行程序的初始化。

CWinApp::InitInstance()函数负责注册窗口类、创建应用程序对象、创建窗口等工作。

3.窗口创建
在程序初始化完成后,会创建应用程序的窗口。

应用程序窗口是应用程序的入口,用户可以通过应用程序窗口与应用程序进行交互。

4.消息循环
在窗口创建完成后,会进入消息循环。

消息循环是MFC程序的核心,负责处理来自操作系统的消息。

5.程序退出
用户关闭应用程序时,会调用CWinApp::ExitInstance()函数退出程序。

CWinApp::ExitInstance()函数负责释放程序使用的资源。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

mfc实现流程
MFC(Microsoft Foundation Class Library)是微软提供的一个类库,用于在Windows环境下开发基于C++的图形用户界面(GUI)应用程序。

使用MFC可以简化Windows应用程序的开发过程。

以下是使用MFC实现应用程序的基本流程:
1. 创建项目:在Visual Studio中创建一个新的MFC项目。

选择“File”菜单中的“New”->“Project”,然后选择“MFC Application”。

2. 设置项目属性:在项目创建后,需要设置一些属性,如应用程序类型(单文档或多文档)、使用的MFC版本等。

3. 设计界面:使用Visual Studio的设计器,在图形界面中添加需要的控件,如按钮、文本框等。

也可以手动编写代码来创建控件。

4. 编写代码:根据需要编写代码,包括处理用户输入、更新界面、访问数据库等。

MFC提供了许多类和函数,用于简化常见的编程任务。

5. 编译和运行:编译代码并运行应用程序,检查是否存在错误。

6. 调试:如果应用程序中存在错误,使用调试器来查找和修复问题。

7. 测试:进行彻底的测试,确保应用程序在不同情况下都能正常工作。

8. 部署:完成测试后,可以将应用程序部署到目标机器上。

以上是使用MFC实现应用程序的基本流程。

具体实现细节会根据具体需求和项目规模有所不同。

相关文档
最新文档