
MFC
文章平均质量分 84
本专栏为本人学习MFC编程时做的笔记
Shad0w-2023
要想人前显贵,必先人后受罪!!!
展开
-
【MFC】12.双缓冲序列化机制-笔记
双缓冲在之前写字符雨的时候,已经简单介绍过,今天我们来写一个简单的程序来体会双缓冲机制我们实现一个在屏幕上画直线的功能:只有有了无效区域,绘图消息才会产生这样写完了之后,确实可以画出来直线,但是这是我们直接操作外设的,所以会出现闪屏的情况这时候就需要我们的双缓冲了双缓冲就是我们操作内存,将直线画在内存上,然后将内存完整拷贝到外设上,这样就可以避免操作慢,闪屏的问题:Win32中,能操作设备的,只有设备句柄hdc而在MFC中封装了:CDC------->对应Win32::GetDC。原创 2023-08-12 07:45:45 · 846 阅读 · 0 评论 -
【MFC】11.MFC文档和单文档架构-笔记
如果视图类和文档类没有绑定,会崩溃(这里交给视图类处理WM_CREATE消息)就省略了绑定的过程,所以就没有绑定。之前我们在写字符雨的时候,将数据都存储到了视图类中,这是不合理的,视图类只负责显示,不应该存储任何数据。文档类::UpdateAllViews 通知所有视图文档已被修改的消息。视图类::OnUpdate----如果文档类数据发生改变 你怎么绘制。去消息数组里遍历有没有WM_CREATE消息,如果有的话,处理。在WM_CREATE消息中,创建了视图。原创 2023-08-11 21:40:32 · 886 阅读 · 0 评论 -
【MFC】10.MFC六大机制:RTTI(运行时类型识别),动态创建机制,窗口切分,子类化-笔记
MFC六大机制:RTTI(运行时类型识别),动态创建机制,窗口切分,子类化原创 2023-08-11 15:24:00 · 1236 阅读 · 0 评论 -
【MFC】实现字符雨(详细讲解,附完整代码)
这里需要注意,这里我们在视图类中实现了字符雨,但这是不科学的,因为视图类只负责显示窗口,数据不应该保存在视图类中,我们之后学习文档类,会解决该问题。我们这样创建了雨滴结构之后,我们还需要绘制,这时候,我们在视图类中创建一个定时器,当窗口有无效区域的时候,就去绘制。因为我们直接使用设备句柄,往设备上画图的时候,如果数据量非常大,就会闪屏,这里使用双缓冲,即可解决。然后我们创建定时器消息,使用MFC的宏:ON_WM_TIMER()我们先将绘图绘制在一张图片上,然后将图片完整复制给屏幕。原创 2023-08-09 00:18:48 · 441 阅读 · 0 评论 -
【MFC】09.MFC视图-笔记
MFC视图窗口:CView类 显示数据/画面我们之前的绘图消息,都是在框架类上画出来的视图窗口就覆盖在框架窗口上视图窗口本质上也是窗口,只是和框架窗口风格不同CView类也继承于CWnd类CView也能处理消息,因为它继承于CWnd类试图窗口没有边框等视图窗口是框架窗口的子类 WS_CHILD在框架窗口创建的时候,创建视图窗口原创 2023-08-09 00:15:26 · 1026 阅读 · 0 评论 -
【MFC】08.MFC消息,自定义消息,常用控件(MFC菜单创建大总结),工具栏,状态栏-笔记
本专栏上几篇文章讲解了MFC几大机制,今天带领大家学习MFC自定义消息以及常用控件,最常用的控件请查看本专栏第一二篇文章,今天这篇文章介绍工具栏,菜单和状态栏,以及菜单创建大总结。原创 2023-08-08 11:21:27 · 1591 阅读 · 0 评论 -
【MFC】07.MFC六大机制:消息映射-笔记
本专栏上两篇文章分别介绍了【MFC】05.MFC第一大机制:程序启动机制和【MFC】06.MFC第二大机制:窗口创建机制,这篇文章来为大家介绍MFC的第三大机制:消息映射typfd要实现消息映射,必须满足的三个条件:类必须继承于CmdTargert类必须声明重定义 DECLARE_MESSAGE_MAP类外必须实现DEGIN_MESSINGE_MAP()在Win32程序中封装消息:我们定义一张映射表,当进入WndProc的时候,通过查找这张表的映射关系,来执行对应的函数:原创 2023-08-07 17:24:00 · 1232 阅读 · 0 评论 -
【MFC】06.MFC六大机制:窗口创建机制-笔记
接上文【MFC】05.MFC第一大机制:程序启动机制-笔记,这一篇文章来带领大家逆向分析MFC第二大机制:窗口创建机制的源码。我们知道,在Win32编程中,如果我们要创建一个窗口,基本步骤为:注册窗口创建一个窗口,必须要给一个类名称消息处理回调函数原创 2023-08-07 15:11:16 · 1326 阅读 · 0 评论 -
【MFC】05.MFC六大机制:程序启动机制-笔记
MFC程序开发所谓是非常简单,但是对于我们逆向人员来说,如果想要逆向MFC程序,那么我们就必须了解它背后的机制,这样我们才能够清晰地逆向出MFC程序,今天这篇文章就来带领大家了解MFC地程序启动机制:再总结一下MFC的程序启动机制:- 首先是theApp,也就是我们自己的窗口类(CMyApp)的构造,也就是CWinApp的构造,在构造函数中: 1. 将theApp的地址,保存到了当前应用程序线程状态信息中 2. 将theApp的地址,保存到了当前应用程序的模块状态信息中原创 2023-08-07 11:11:50 · 2284 阅读 · 1 评论 -
【MFC]实现16进制文件浏览器-详细步骤+代码
学习MFC已经两天了,我们来写一个小项目:16进制文件浏览器,简单实现,因为我们MFC学的还不是很透彻,这里会给出详细的每一个步骤,并且详细获取打开文件路径字符串,打开文件,获取文件句柄,将文件二进制码读取到内存中。为列表添加变量:控件类型,m_HexVIewList。为树添加变量:控件类型,m_FilePathTree。实现菜单中打开文件功能能,实现拖拽打开文件功能。将主对话框MENU设置为创建好的菜单资源名称。画出基本窗口,列表,树,进度条,菜单。主对话框需要设置属性:接受文件。填充列表,实现进度条。原创 2023-08-03 14:47:09 · 845 阅读 · 1 评论 -
【MFC】03.常用复杂控件的使用-笔记
MFC中,热键,列表控件,树控件,IP控件,Tab页控件的基本使用方式笔记原创 2023-08-02 23:40:31 · 878 阅读 · 1 评论 -
【MFC】02.文件类与常用基础控件-笔记
文件类与常用基础控件,MFC文件筛选,工具类,菜单,单选按钮,多选按钮,消息处理原创 2023-08-01 18:18:36 · 1009 阅读 · 1 评论 -
【MFC】01.MFC框架-笔记
MFC基本框架,注意事项,窗口类,对话框,MFC消息处理方式,MFC变量绑定原创 2023-08-01 18:16:52 · 1444 阅读 · 1 评论