首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MFC原理第一讲.MFC本质.以及手工编写MFC程序

MFC原理第一讲.MFC本质.以及手工编写MFC程序 PS: 这个博客属于复习知识.从头开始讲解....在写这篇博客之前.已经写了3篇MFC本质了.不过掌握知识点太多.所以从简重新开始. 一丶MFC本质是什么.   MFC本质其实就是Win32程序一种封装....二丶手工编写一个MFC程序.   手工编写MFC程序.需要熟悉两个类   一个是CWinAPP,一个是CFramWnd类. 这两个类作用.   ...并且提供构造.构造里面创建窗口.   5.CPP 文件必须包含MFC类库. afxWin.h   6. 使用MFC 静态库方式. 例如下图: ? 具体实现代码:   1. .h文件代码....如果有兴趣.可以看看MFC源码.也可以看看我以前写过MFC原理博客.

2.2K40
您找到你想要的搜索结果了吗?
是的
没有找到

MFC原理第二讲.MFC初始化过程

MFC原理第二讲MFC初始化过程 一丶简介   通过上一讲.我们手工模拟了一个MFC程序. 但是上一讲留下了疑问. 就是WinMain在哪.以及消息处理在哪里....也就是我们theApp这个变量. 也就是MFC初始化过程. 二丶Winmain查找.   我们上一讲模拟了MFC程序.要查找winmain很简单.   1.调试启动. F10快捷键....因为MFC框架太大.现在不利于我们直接看MFC源码学习.所以我们要从最简单模拟开始. 三丶MFC初始化过程之theApp为什么全局.   ...MFC中也是放在CWinThread类中.所以我们放到我们里面....为什么还需要第二个 m_pCurApp指针.原因是 MFC在调用时候.不能直接使用     theApp. 而是通过一个函数 AfxGetTheApp来获取.

99751

初识mfc

今天主要了解了Visual C++开发环境Visual Studio(话说以前都是用来调试控制台程序)和用mfc写了一个最简单程序。   ...目前微软大力推广开发环境就是vs,它集成度相当高,方便程序员进行开发工作。vs就不说了。来说说如何建立一个最简单mfc程序。...第一步应用程序类型类型选择为:基于对话框,然后项目类型选择为MFC然后点完成,一个简单对话框程序框架就完成了.现在已经有了一个可运行应用程序框架,接下来要做就是设计程序窗口.为什么说是用mfc程序呢...因为mfc是一系列c++类,他们包含了绝大多数与windows操作系统交互编程功能,就是说别人已经预先写好了,我们自需要拿来用即可.   ...直接在资源视图中打开IDD_HELLO_DIALOG对界面进行修改.鼠标点击每个按钮右下角属性窗口对该按钮进行修改,比如更改大小,位置,增加点击事件等.在左边工具箱中可直接拖拽各种控件到窗口中,非常方便

1.7K30

mfc wpf winform(工业用mfc还是qt)

与C#中WPF又有点类似 MFC与WinForm 前面讲了这四个框架都是简化两层MVC模式.MFC中数据逻辑处理自然是放后缀为h,cpp这些文件中.而页面相关那一堆东东放资源文件rc后缀文件中...WinForm中也遗留了MFC一些思想,比如还有类似资源文件东东,像Resources.resx文件,里面一般是放图片信息,然后Setting.settings就类似MFCstring table...窗口中每一个控件都有一个name,相当于mfc资源ID吧,然后你在代码中调用控件时直接用这个名字就行,就相当于一个变量名字.所以代码与UI交互起来非常方便,另外MFC消息机制在这里被封装成了事件...event,用户用起来很方便,也不用管背后复杂逻辑.MFC虽然对消息机制做了些封装,但封装还不够好....QT与WPF 同为C++GUI框架,QT与MFC不那么相似,那种逻辑反而更接近C#wpf框架一点.首先不是所有UI相关代码都像MFC一样整到一个rc文件,而是一个UI页面有对应一个后缀为uixml

2.1K10

认识基本mfc控件

静态文本控件:用来向使用者展示文本,用户无法改变文本内容,也就是说无法与控件交互,静态文本对用户来说只是一个只读控件。当然编码者可以通过修改代码方便改变显示文本。   ...复选框用来打开或者关闭某一个特定值,除了基本打开和关闭开关外,还有第三种状态,一种中间态。   单选按钮控件:单选按钮是个圆圈用户可以通过单击在其中添加一个黑点。...用来一次在一组两个或者更多值中只选出一个值处于打开状态。 ? 这个就是单选按钮控件。   组合框控件:也叫下拉列表框。控件是一个带有可用值列表编辑框。...使用组合框提供一系列选择,用户可以从中选取一个值。有时用户可以在提供列表满足要求时直接输入一个值。   每个控件都有属性,用来对这个控件进行说明。下面列出基本属性,每个控件框都有的。...如果禁用会让Caption中文本只显示轮廓或者像是对话框表面上凹痕。 Tab Stop:表明当用户使用tab键在对话框中移动时,这个控件是否被选中。

3.4K20

MFC控件

提示:这里可以添加本文要记录大概内容: 例如:以下是官方博客例子浅析 先加入相关头文件和库文件。...---- 提示:以下是本篇文章正文内容,下面案例可供参考 一、一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 示例:是基于一种工具,该工具是为了解决任务而创建。...代码如下(示例): 由于工作需要,自绘了大部分MFC控件,现作个总结如下 CTreeCtrl是在OnNMCustomdraw中自绘,不要设定其他属性 CListCtrl是在DrawItem中自绘,...,但是一定是保存了数据库,不能是临时数据库 测试代码 //如果使用当前数据库,一定要保存文件否则会出错, //当前数据库有自动保存操作,即使不操作,如果不保存,也会出错。...总结 提示:这里对文章进行总结: 例如:以上就是今天要讲内容,本文仅仅简单介绍了函数和方法。

12120

MFC和QT区别

MFC 微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是微软公司提供一个类库(class libraries),以C++类形式封装了Windows API...早期很多学习计算机专业读者可以在学校里面都有接触过,因为这个是每一个计算机专业读者必修课程,所以在早期C++项目里面很多都是使用MFC为开发框架进行构建,因为它有一个很大好处就是和我们windows...windows系统开发程序很大部分都是使用了MFC框架进行开发,在如今我们很多酒店、政府等等很多行业上面用都是MFC框架进行开发,MFC全面支持COM组件开发,这个时候很多在windows开发程序也会在这上面支持...编程,而我们MFC是封装后windows编程。...基本上,Qt 同 X Window 上 Motif,Openwin,GTK 等图形界 面库和 Windows 平台上 MFC,OWL,VCL,ATL 是同类型东西。

1.7K51

MFC入门教程(深入浅出MFC)

2.左侧面板中Installed TemplatedVisual C++下选择MFC,中间窗口中选择MFC Application,然后在下面的Name编辑框中键入工程名称,本例取名“Addition...控件属性改变后MFC会相应修改控件关联变量值。这种同步改变是通过MFC为对话框类自动生成成员函数DoDataExchange()来实现,这也叫做对话框数据交换和检验机制。...之前加法计算器对话框其实就是模态对话框。 二.模态对话框是怎样弹出 毕竟加法计算器程序大部分都是MFC自动生成,对话框怎么弹出来大家可能还不是很清楚。...我们在CAdditionDlg类析构函数中添加删除代码,但是MFC并没有自动给出析构函数,这时需要我们手动添加,在对话框对象析构时就会调用我们自定义析构函数了。...另外,本套教程所讲大部分对VC++各个版本均可适用或者稍作修改即可,但考虑到终究还是基于VS2010版本,所以将《VC++/MFC编程入门》改为《VS2010/MFC编程入门》。

3.6K30

mfc可视化界面_mfc界面开发

亲爱BCGSoft用户,我们非常高兴地宣布BCGControlBar Professional for MFC和BCGSuite for MFC v32.2正式发布!...新版本改进功能区和框架标题命令搜索、带有可选复选框网格日期选择器、带有标签功能区滑块等,需要最新版可以点击这里【BCG下载】 BCGControlBar Pro for MFC v32.2正式版下载...由于搜索框现在可以位于框架上,因此您可以为non-Ribbon-based应用程序启用它(启用框架标题栏基于工具栏/菜单应用程序)。...滑块控件扩展(右侧)文本。 命令搜索选项。 工具栏和菜单 1. 改进了某些可视化主题中禁用组合框外观。 2....CBCGPPopupMenu:添加了突出显示(标记)文本支持,调用新静态方法 CBCGPPopupMenu::SetHighlightedText 来指定要突出显示单词列表。 3.

3.6K20

MFC实现Socket通信

MFC实现Socket通信     过五一准备休息两天,正好有朋友要来西安,我也能在西安周边转转,毕竟在这上大学居然还没有好好逛过。所以放假之前一个晚上我发篇文章。     ...我觉得MFC东西挺难说,好像代码没有一个头,也没有一个尾,不知道从何讲起。所以我只说说socket部分,当然包括服务端和客户端。     这是服务端样子: ?    ...因为我们这是服务端,所以保存IP地址和端口是自己,htonl(INADDR_ANY)就是将IP地址绑定为任意,这样你IP可以是127.0.0.1,也可以是192.168.x.x,也可以是你外网IP...之后有一个将节点加入链表过程。因为我们连接服务端客户端不止一个,所以我们要将每一个客户端IP、SOCKET和相关信息加入链表,以供以后使用。...附件:MFC Socket.rar

1.1K41

Qt和MFC区别

@toc (MFC效率较高,但大量Windows API和消息机制使得其较难理解,不易用;QT封装较好,易用且==跨平台==,但效率较低) MFC(微软基础类库)是专门为windows设计一个用于开发图形用户界面的类库...伪对象 vs 真对象 归根结底,Qt和MFC差异在于其设计差异。 MFC根本目的是访问包装起来用C语言写windowsAPI。...(译者注:后面关于购买价格等问题删去,因为价格不固定,如果有疑问请到官方网站查询价格) 发布 在发布基于MFC软件时,必须依靠存在于客户电脑上MFC。...但是这是不安全,同样是MFC42.dll,可以基于相同库得到3个不同版本。通常,需要检查是否拥有正确MFC42.dll版本,如果不是,就升级它。但是升级MFC42.dll会改变很多软件行为。...Qt要想短时间撼动MFC地位,还是有点难度

1.3K41

MFC电脑地震

MFC电脑地震设计报告 第一章  项目描述 1.1功能描述 实现鼠标点击任意一个前台窗口,并且使它震动起来,实现电脑地震效果。并且屏蔽掉任务管理器,和关闭按钮,通过输入密码123来关闭此程序。...1.2所需技术 获取当前窗口句柄,屏蔽能使程序关闭消息 第二章  总体设计 2.1程序运行流程图 3.1使当前前台窗口震动 以下是获取前台窗口句柄和大小程序清单。...m_hWnd = ::GetForegroundWindow();//获得当前前台窗口句柄 ::GetWindowRect(m_hWnd,&m_Rect); //获得前台窗口大小 得到窗口句柄后使用...::SetWindowPos函数使窗口改变位置,这里值得注意是要加::为全局作用域符,使得MFC能够使用API函数,而不是本类中成员函数。...3.2屏蔽任务管理器 以下是当出现对应标题对话框时,发送关闭消息。主要是屏蔽任务管理器等对话框。

10430

MFC文件操作

文件操作:二进制文件和文本文件区别。二进制文件将数据在内存中存在模式原封不动搬到文件中,而文本文件是将数据asc码搬到文件中。...fflush可以在文件不关闭情况下将一个流(缓冲区)当中数据清空,这里清空是把缓冲区数据输出到硬盘。这样可以达到边写边输出效果。...如果以二进制文件(ios::binary)进行读写时候就没有这种问题存在。不做任何转换。 C++文件操作打开文件是在构造函数里完成,关闭文件是在析构函数里完成。 3. MFC方式: I....返回一个CString对象内部字符缓冲区(字符数组)指针,这个返回指针不是一个常量指针,因而允许直接修改指针所指向CString对象内容。...,如果是前面这个已打开句柄,那么可以根据这个已打开句柄和后面子键参数,在这个已打开键下面创建一个新句柄),然后根据得到这个句柄去读写。

2.3K20

MFC多线程

用进程和线程观点来研究软件是当今普遍采用方法,进程和线程概念出现,对提高软件并行性有着重要意义。现在大型应用软件无一不是多线程多任务处理,单线程软件是不可想象。...线程基本思想很简单,它是一 个独立执行流,是进程内部一个独立执行单元,相当于一个子程序,它对应于Visual C++中CwinThread 类对象。...);   上述二个函数分别用来获取和设置线程优先级,这里优先级,是相对于该线程所处优先权层次 而言,处于同一优先权层次线程,优先级高线程先运行;处于不同优先权层次上线程,谁优先权 层次高...(二)用事件对象实现通信   在线程之间传递信号进行通信比较复杂方法是使用事件对象,用MFCCevent类对象来 表示。...Visual C++中使用同步类来解决操作系统并行性而引起数据不安全问题,MFC 支持七个多线程同步类可以分成两大类:同步对象(CsyncObject、Csemaphore、Cmutex、 CcriticalSection

2.4K60

MFC 随机矩形

问题描述:   简单地使用随即尺寸和颜色不停绘制一系列图像。 一种古老方式:   设置一个向窗口函数发送WM_TIMER消息windows计时器。   ...方法弊端:   程序不能很快绘制随机矩形,必须等待每个WM_TIMER消息,会依赖于系统时钟精度 新函数: PeekMessage(&msg,NULL,0,0,PM_REMOVE);这个函数允许一个程序检查程序队列中下一个消息...,而不是真实获取并删除它看到消息。...在一个正常消息循环中,不需要这样做。   因为正常GetMessage返回值是false(0),但是PeekMessage返回值是队列中有没有消息,因此检查wm_quit是必要。...源文件代码: // peekmessage.cpp : 定义应用程序入口点。

1.3K50
领券