1.首先MFC程序需要哪些函数库? Windows C Runtime函数库 LIBC.LIB       C Runtime函数库的静态链接版本 MSVCRT.LIB     C Runtime函数库的动态链接版本 MSVCRTD.LIB      ‘D’表示使用于Debug方式 DLL Import函数库:GDI32.LIB.USER32.LIB.KERNEL32.LIB… MFC函数库:MFC42.LIB.MFC42D.LIB.MFCS42.LIB.MFCS42D.LIB.MFCN42D.…
1. 本章主要目的:从MFC程序代码中检验出一个Windows程序原本该有的程序进入点(WinMain).窗口类注册(RegisterClass).窗口产生(CreateWindow).消息循环(Message Loop).窗口函数(Window Procedure)等等操作.抽丝剥茧,彻底理解一个MFC程序的诞生与结束,以及生命过程. 2. 熟记MFC类的层次结构: 3. CWinApp和CFrameWnd: (1)CWinApp(AFXWIN.H中声明)——取代WinMain的地位. 注:C…
一.头文件说明 STDAFX.H 这个文件用来作为Precompile header file,其内只是载入其他的MFC头文件.应用程序通常会准备自己的头STDAFX.H. AFXWIN.H 每一个Windows MFC程序都必须载入它,因为它以及它所载入的文件声明了所有的MFC类. 在WINDEF.H中有CALLBACK的定义 #define CALLBACK _stdcall //是一种函数调用习惯 在AFXWIN.H中有afx_msg的定义 #define afx_msg   //故意安排…
1. 熟记MFC类层次结构: 2. AppWizard可以为我们制作出MFC程序骨干: 3. Document/View支撑你的应用程序:Document/View的价值在于,这些MFC类已经把一个应用程序所需的“数据处理与显示”的函数空壳都设计好了,这些函数都是虚函数,所以你可以(也应该)在派生类中改写它们.有关文件读写的操作在CDocument的Seiralize函数中进行,有关画面显示的操作在CView的OnDraw或OnPaint函数中进行. 4. 一个标准的MFC MDI程序使用这些类…
对于程序员来说,如果要提高编程效率,一个好用的,功能强大的并且可以得心应手使用的编程工具往往会给我们程序员带来莫大的方便.其实对于现在的编程工具来说,使用哪一种工具都不是问题的关键,重要的是你能够使用到什么程度,毕竟现在的工具都是非常的强大,对于一般的编程任务来说还没有不能够胜任的工具,否则的话恐怕他就不可能在这个世界上存在哪怕是只有一个月的生命. 但是根据个人所好以及周围的人的影响,我们都会去使用某一种或者几种工具.比较Visual Basic .C++ Builder和Delphi等编程工具…
1 MFC概述 顾名思意,MFC应用程序框架是以MFC作为框架基础的,以此程序框架模式搭建起来的应用程序在程序结构组织上是完全不同于以前的Win32 SDK编程方式的.自20世纪90年代初问世以来,MFC一直试图把Windows API函数封装到类库中个各个逻辑类中.MFC的这种封装并非简单地对API函数进行分组与打包,而是更多地通过类来试图实现全部的系统策略.随着越来越多系统功能的加入,MFC的规模也在不断拓展,目前已包括有200多个类,涵盖了通用Windows 类.文档/视框架.OLE.数据…
比方说我们用Visio Studio创建了一个MFC应用程序,名称为Mysdi.在创建这个项目的时候,默认的会生成许多类和文件,就关于这些文件的内容和要点展开以下论述. 框架窗口类头文件 向导为项目Mysdi生成了框架窗口类的头文件MainFrm.h,该头文件用于定义框架窗口类CMainFrame.不同的SDI应用程序,其框架窗口类名和文件名是统一的.CMainFrame类是MFC的CFrameWnd类的派生类,它主要负责创建标题栏.菜单栏.工具栏和状态栏.CMainFrame类中声明了框架窗口…
MFC原理第一讲.MFC的本质.以及手工编写MFC的程序 PS: 这个博客属于复习知识.从头开始讲解. 在写这篇博客之前.已经写了3篇MFC的本质了.不过掌握知识点太多.所以从简重新开始. 一丶MFC的本质是什么. MFC的本质其实就是Win32程序的一种封装. 其实就是封装好了.我们直接用就行了. 二丶手工编写一个MFC程序. 手工编写MFC程序.需要熟悉两个类 一个是CWinAPP,一个是CFramWnd类. 这两个类的作用. CWinAPP  这个主要就是保存窗口的一些数据.跟窗口本身无关…
最近抽空复习了一下MFC的内容,觉得一篇博文写的不错. 原文内容太多直接给出链接吧:深入理解MFC中程序框架 链接2:深入浅出话VC++(2)——MFC的本质 链接3:MFC单文档/视图结构穷追猛打…
一 MFC的发展 VC 1.0->VC 5.0->VC 6.0->VC2008 SP1)->VS2010 二 MFC基础 1 MFC 微软基础类库 采用类的方式,将Win32 API等进行封装,形成的库. 2 MFC相关的头文件 afx.h   (application framework, X) afxwin.h  (类似于windows.h) afxext.h  (MFC扩展头文件) ... 三 MFC应用程序 MFC应用程序主要分为以下三类,对比通常的应用程序,变化的地方如下…
一.MFC应用程序类型 上篇文章的彩蛋:可通过使用MFC应用程序向导(MFC AppWizard)的功能来创建所需要的应用程序,这意味着不需要输入任何代码.MFC除了应用程序向导,还对应用程序项目有着独特的管理方式. 1. MFC AppWizard 作用:能为用户生成一些常用的标准程序结构和编程风格,它们被称为应用程序框架结构. 提供的应用程序框架类型:包括MFC AppWizard(dll).MFC AppWizard(exe).Win32 Application等,这些类型基本上能满足各个…
MFC小程序截图: 一.在MFC中简单使用WebBrowser的ActiveX插件的方法: 见博文:  http://blog.csdn.net/supermanking/article/details/5866213 二.在对话框中创建视图(我这里创建的是一个滚动视图): 见博文: http://blog.csdn.net/clever101/article/details/4873994 http://blog.csdn.net/clever101/article/details/37790…
MFC:微软基础类(Microsoft Foundation Classes),同VCL类似,是一种应用程序框架,随微软Visual C++ 开发工具发布.作为Application Framework,MFC的使用只能提高某些情况下的开发效率,只起到辅助作用,而不能替代整个Win32 程序设计. 本次主要以Windows下Visual Studio 2019环境下如何搭建MFC应用开发环境,创建MFC项目以及实例程序来对C++ MFC应用程序开发来做一个归纳整理. 一.搭建开发环境 由于Vis…
近一段时间开始接触到MFC桌面开发程序,忙完了一段时间的项目开发之后,来整理整理Visaul Studio 2015开发MFC桌面程序的基本功能. 首先从创建软件工程项目开始,Visaul Studio 2015以上的版本安装Visaul Studio软件的是时候已经不默认安装MFC开发的组建了,需要用户自己手动安装,而2015之前的版本的Visaul Studio软件在安装的时候,都是默认安装了MFC的开发环境的. 第一步,打开Visaul Studio 2015软件,新创建一个工程,如下图所…
花了一个礼拜,终于在VC++2008 MFC 应用程序中完成了首个基于DCMTK354的首个程序ECHOSCUWIN32,现将过程记录下来,便于日后查阅,同时也提供给那些有幸看到此博文而对他们又有帮助的访客!           如果你在 VS2008 中编译 DCMTK354,并且创建自己的基于DCMTK354静态库的 VC++ MFC 应用是遇到问题,或许下面的咨询会对你有帮助!          在此感谢来至宝岛台湾的同行 Chinson,他的博文 "使用 DCMTK 函式庫 for Vi…
VS2010/MFC编程入门之四(MFC应用程序框架分析)-软件开发-鸡啄米 http://www.jizhuomi.com/software/145.html   上一讲鸡啄米讲的是VS2010应用程序工程中文件的组成结构,可能大家对工程的运行原理还是很模糊,理不出头绪,毕竟跟C++编程入门系列中的例程差别太大.这一节鸡啄米就为大家分析下MFC应用程序框架的运行流程. 一.SDK应用程序与MFC应用程序运行过程的对比        程序运行都要有入口函数,在之前的C++教程中都是main函数,…
MFC应用程序中处理消息的顺序 1.AfxWndProc()      该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc 2.AfxCallWndProc()  该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以后使用,然后调用WindowProc()函数 3.WindowProc()      该函数负责发送消息到OnWndMsg()函数,如果未被处理,则调用DefWindowProc()函数 4.OnWndMsg()        该函…
VC++6.0和VS2005在编写MFC应用程序时,操作方面的差异 一直用VC++6.0,对VS2005不太了解,下面简单的熟悉一下VS2005的一下功能,总结一下VS2005在编写MFC时候的应用. 1.    菜单项: 和VC6.0一样,也是找到资源视图,点击menu资源,在上面新建自己的菜单项.只是‘属性’,陈列的方式不同,VS2005陈列在右下角:在VC6.0中,我们对菜单项建立类向导,而在VS2005中,点右键,选择的是:‘添加事件处理程序’,然后再对话框里选择相应的消息类型,在类列表…
如何建立MFC应用程序 打开VS2013:…
MFC的 程序框架: WinMain函数:程序首先到达全局变量theApp,再到达theAPP的构造函数,最后到达WinMain函数处. 问:为何要定义一个全局对象theAPP,让其在WinMain函数之前执行? 答:在win32应用程序中,应用程序的实例是由实例句柄hInstance来标识的,对于MFC程序,通过产生一个应用程序的对象来唯一标识应用程序的实例,每一个MFC程序有且仅有一个从应用程序类CWinAPP派生的类,有且仅有一个从该派生类的实例化对象. MFC消息映射机制的具体实现方法:…
很早之前就发现,我写的图形引擎在MFC框架程序中的刷帧率始终在60FPS左右.好在自己的程序对刷帧率的要求不是很高,所以一直没有太过纠结此事.直到今天看了别人的程序才发现应该在函数CWinApp::OnIdle()中进行刷帧操作.而之前我是先注册个时钟响应事件SetTimer(1001, 1, NULL);然后在CView::OnTimer()中或者是CDialog::OnTimer()进行刷帧操作.这样其刷帧率得不到保证.也在::OnPaint()函数中进行刷帧操作,一样的问题.之前我也觉得应…
MFC Windows程序开发究竟是什么? MFC是一个Application Framework.他是一个完整的程序模型. 什么是MFC?MFC是微软公司出品一个Application Framework.基本上,我们可以认为Application Framework就是一个完整的程序模型,具备标准软件所需的一切基本功能,比如文件存取.打印等等.从C++语言层面来看,Application Framework就是有一整套组合好的“对象”构建起来的模型.从C++语法上来说,MFC就是一套微软提供…
在编写复杂程序的过程中,我们经常需要将一些信息输出到文件或者屏幕上.较控制台应用程序,MFC窗体程序要显得麻烦一些! 下面有2种方法来实现为MFC窗体程序添加调试控制台,方便程序员调试程序和了解当前程序的运行状态. 重要Windows API:AllocConsole();   //创建Console窗口 FreeConsole();     //销毁Console窗口 (1)启动控制台窗口 需要包含的头文件 #include <io.h> #include <cstdio> #i…
VC对话框怎么显示背景图片呢.在MFC中实现背景图片,不像C#应用程序那么简单.今天就和朋友们说说如何在VC界面中设置背景图片 ^_^   工具/原料 Visual C++ 2010 方法一:用Picture控件 1 新建MFC应用程序 2 在应用程序中,选择基于对话框,其他保持默认即可 3 右击项目,选择添加-资源 4 在添加资源对话框中,点击导入,选择要作为背景的图片 jpg格式的图片可以用画图打开另存为bmp格式 (网上说可以直接jpg格式,自行实验未成功) 下方对话框中资源类型选为bit…
http://blog.csdn.net/xgx198831/article/details/6713651 MFC对话框程序  屏蔽ESC和ENTER键关闭对话框的方法 或许还有其它更好的办法,但下面这个肯定有用,主要就是重载PreTranslateMessage()函数,在这个函数里捕捉ESC和ENTER键按下时的消息,然后什么都不做,或是添加代码完成你自己想要实现的功能.1.完全屏蔽ESC键与ENTER回车键BOOL CTest1Dlg::PreTranslateMessage(MSG*…
使用计时器更新MFC界面时间,频率1s. 文件——新建项目——MFC应用程序,下一步,选择基于对话框,其他默认,完成. 双击窗体(或者鼠标右键)进入类向导,自动创建Ontimer()函数 void CMFCApplication8Dlg::OnTimer(UINT_PTR nIDEvent) { // TODO: 在此添加消息处理程序代码和/或调用默认值 CTime time = CTime::GetCurrentTime();//获取当前时间 CString str; str.Format(_…
文件——新建——项目——MFC应用程序 运行即可. [菜单栏单击事件] 视图——其他窗口——资源视图,双击Menu中的IDR_MAINFRAM,打开菜单栏.在主菜单栏输入“显示你好”. “显示你好”处,鼠标右键——属性,为了直观,把ID修改成下图所示. “显示你好”处,鼠标右键——添加事件处理程序. void CMainFrame::OnShowhello() { // TODO: 在此添加命令处理程序代码 AfxMessageBox(_T("你好!"));//_T是一个宏,作用是让你…
转自:http://www.jizhuomi.com/software/145.html 一.SDK应用程序与MFC应用程序运行过程的对比 程序运行都要有入口函数,在之前的C++教程中都是main函数,而Windows应用程序的入口函数是WinMain函数,MFC程序也是从WinMain函数开始的.下面给出用Windows SDK写的“HelloWorld”程序,与应用程序框架进行对比,这样能更好的了解框架是怎样运行的.Windows SDK开发程序就是不使用MFC类库,直接用Windows A…
转载:http://blog.csdn.net/b_silence/article/details/10489085 前些天用MFC开发一个桌面程序,实现功能后客户说界面太难看,自己仔细看看也着实难看,所以就仔细的研究了下MFC的美化方法,特此分享给大家. ★利用SkinMagic美化MFC的界面. SkinMagic是一个C++的皮肤库,使用它可以完美的实现给你的程序换肤. 代码运行效果图如下: 以前看到瑞星和金山词霸有换皮肤功能,很是羡慕,自己也想做个换皮肤的程序,但下手着实有些 困难.我也…
参考资料: https://msdn.microsoft.com/en-us/library/30c674tx.aspx http://www.cnblogs.com/qrlozte/p/4844429.html http://www.cnblogs.com/qrlozte/p/4850642.html 在上面给出的MSDN链接中,你可以看到四种DLL的定义.这里就不赘述.捡重点的说 区别就在于: NON-MFC DLL内部不能使用MFC(当然其导出的API也不能涉及MFC).(这里我说“导出的…