孙鑫VC学习笔记:第十三讲 (三) WM_FILE_NEW消息响应原理

孙鑫VC++深入详解:Lesson5 Part4 屏幕字符串滚动输出,DrawText,SetTimer,WM_Timer消息 滚动字母,修改输出字幕颜色,定时器 在onCreate中添加一个定时器,即SetTimer(1,100,NULL) 再在类CDrawView中添加消息WM_TIMER的响应函数OnTimer 每间隔100毫秒被调用OnTime() 在OnTime()中用DrawText输出字符串,DrawText的输出宽度每次按照5像素宽度增加, 随着矩形宽度增加,那么显示出来的字符串就逐步增加,效 阅读详情
WM_FILE_NEW消息响应原理

当点击“新建”按钮时,会发送WM_FILE_NEW消息,按照消息响应函数的命名规则,
它的响应函数应该叫OnFileNew(),但是在代码中找不到,
通过调试发现,当新建按钮时,程序会调用CGraphicDoc::OnNewDocument(),
WM_FILE_NEW的消息是如何响应的呢?

我们可以在VC++的安装目录下找到一个文件
../Microsoft Visual Studio/VC98/MFC/SRC/APPDLG.CPP
在这个文件中,有一个CWinApp::OnFileNew()函数,它是这样定义的:
 Void CWinApp::OnFileNew()
 {   if (m_pDocManager !=NULL) m_pDocManager->OnFileNew();}
 
 m_pDocManager是这样定义的:CDocManager * m_pDocManager;
CDocManager 是一个文档管理器,它有一个指针链表,维护一系统的文档模版指针。

接着,我们可以在../Microsoft Visual Studio/VC98/MFC/SRC/DOCMGR.CPP文件中找到
CDocManager::OnFileNew()的定义。

再次按下“新建”按钮时,由于框架类对象和视类对象已经创建了,在单文档中没有必要重复创建,
它会重复利用已经创建好的框架类对象和视类对象。
如果是多文档程序则会重复创建框架类对象、视类对象和文档类对象。
---------------------------------------------------------------------------------
按下“打开”与“保存”按钮时,会执行CGraphicDoc::Serialize方法
在CGraphicDoc类中有个Serialize(CArchive& ar)方法,是文档类提供的用来保存数据和加载数据的函数,其参数就是一个CArchive对象。
注意:如果将一个文件保存之后,马上打开它,程序将不会调用本方法加载数据,
       因为当我们保存数据的时候,以前创建的文档类对象与保存的数据关联在一起了,
       再次打开刚保存的文件时,MFC框架内部识别出是同一份数据,因为与数据相关的文档类指针已经存在
       所以程序不会调用Serialize(CArchive& ar)方法加载相同的数据。 

STM32驱动HC-SR04超声波模块:两种精准测距方案详解 本文详解STM32驱动HC-SR04超声波模块的两种精准测距方案:定时器中断计数法和外部中断边沿检测法。涵盖硬件连接、代码实现与优化技巧,帮助开发者根据精度和复杂度需求选择合适方案,提升超声波测距在嵌入式项目中的稳定性和准确性。 阅读详情

相关推荐

STM32按键中断切换红绿蓝灯

通过以上步骤,我们实现了使用STM32的按键中断来切换红绿蓝LED灯的功能。在实际应用中,可能还需要考虑更多的细节,如按键消抖、更精确的延时实现等。但上述代码提供了一个基本的框架和思路,可以根据具体需求进行扩展和优化。希望这篇博客对您有所帮助!

2301_79865940的博客 952

孙鑫VC学习笔记:第十三讲 WM_FILE_NEW消息响应原理

WM_FILE_NEW消息响应原理当点击“新建”按钮时,会发送WM_FILE_NEW消息,按照消息响应函数的命名规则,它的响应函数应该叫OnFileNew(),但是在代码中找不到,通过调试发现,当新建按钮时,程序会调用CGraphicDoc::OnNewDocument(),WM_FILE_NEW的消息是如何响应的呢?我们可以在VC++的安装目录下找到一个文件../Microsoft Visu

遐迩思的专栏 1812

深信服技术认证“SCCA-C”划重点:信服云托管云

该认证包括云数据中心基础、云计算基础、云计算关键技术、云计算交付和运维体系、云计算技术商业应用、信服云托管云、深信服超融合HCI、深信服桌面云aDesk、深信服分布式存储EDS、深信服应用交付AD。学习并获得SCCA-C认证后,可以具备深信服产品功能原理与实践,能够根据业务需求,协助完成云产品方案落地与实施;能够根据业务需求,完成深信服云产品的部署和管理的基本工作。为帮助大家更加系统化地学习云计算知识,高效通过云计算工程师认证,深信服特推出“SCCA-C认证备考秘笈”,共十期内容。

sangfor_edu的博客 613

关于MFC中如何调用CWinApp::OnFileNew()和OnFileClose()

来源:http://blog.163.com/bbluesnow@126/blog/static/27784545201262802046540/ 今天在做项目的时候,需要点击一个按钮来创建新的View视图,即需要想办法调用CWinApp::OnFileNew()函数,无奈这个函数是protected类型的,没法显示调用。MFC消息机制没有学好,折腾了好久才解决。唉,又一次感到知识匮乏啊

gll028的专栏 3952

合成孔径雷达Chirp Scaling(CS)算法MATLAB仿真实现

本人也是初学《合成孔径雷达成像算法与实现》,在GitHub上下载的关于CS算法的代码,仔细读了读,发现中间有一些不合理之处,动手改了一改,重新写了一个代码供初学者学习,有什么问题留言即可。 非常感谢源代码的作者,虽然中间有少许不正确的地方,但是对我理解cs算法的帮助非常大,非常感谢!!! 代码中提到的(4.31)这种均是在《合成孔径雷达成像算法与实现》中的公式 以下是MATLAB的仿真程序,直接复...

weixin_41700188的博客 7851

Java + Selenium + TestNg + Allure Web UI 自动化

我们知道,在Python中针对Web UI自动化有Python + Selenium + Pytest/Unittest +Allure的技术栈。那么对于Java而言,也有其独特的Web UI 自动化技术栈。相同的,我们同样的运用Selenium框架,测试报告同样运用Allure。不同的是,我们运用的语言由Python转化为了Java,测试用例管理框架从Pytest转化为了TestNG。

qq_45594960的博客 1913

MFC-文档视图

MDI程序       MiniDraw只有一个About对话框,这回要把它变成一个MDI程序,借助于文档视图的威力,并不需要花很大的力气。       MDI由4个类组成:主框架类,由CMDIFrameWnd派生而来,表示程序的MDI父窗口。子框架类,由CMDIChildWnd派生而来,表示程序的MDI子窗口。视图类,由CView派生而来,表示一个文档视图,内嵌于子窗口。

colin 8555

【雷达仿真 | FMCW TDMA-MIMO毫米波雷达信号处理仿真(可修改为DDMA-MIMO)】

1、FMCW叫做调频连续波,调频连续波有步进调频连续波(SFMCW)、线性调频连续波(LFMCW),以及其他非线性调频连续波。LFMCW有锯齿波和三角波等等;锯齿波有恒定调制周期的锯齿波和非恒定周期的锯齿波。Introduction to mmwave sensing:FMCW radars.pdf和The fundamentals of millimeter wave sensors。2、MIMO是多输入多输出(Multiple input Multiple output),也就是多发多收。

【调皮连续波】雷达技术领域知识博主 1万+

ID_FILE_NEW消息和ID_FILE_OPEN消息

转自http://kb.cnblogs.com/a/2357724/和http://blog.youkuaiyun.com/godknows007/article/details/6192925   有详细代码                   MFC默认会发送ID_FILE_NEW消息,调用CWinAppEx::OnFileNew(),在这个函数里会有m_pDocManager-> OnFileNew

chenlanjie842179335的专栏 7134

YoloV8改进策略:轻量级的CloFormer助力Yolov8在速度和精度上实现双双提升

CloFormer是清华大学在今年发表的轻量级主干网络,引入了AttnConv,一种attention风格的卷积算子。所提出的AttnConv使用共享权重来聚合局部信息,并配置精心设计的上下文感知权重来增强局部特征。AttnConv和普通attention的结合使用池化来减少CloFormer中的FLOPs,使模型能够感知高频和低频信息。这篇文章主要向大家讲解如何将CloFormer加入到YoloV8中。论文链接:https://arxiv.org/abs/2303.17803v5。

m0_47867638的博客 4311

MIKE水动力笔记3_岸线及水深数据之根据遥感影像绘制岸线的方法

通过遥感影像自己绘制岸线来制作岸线数据,这种方法获取的岸线及水深数据精度很高,且可以根据自己的研究需要进行灵活处理。

晏长街的博客 1万+

关于OnFileNew()的定制

关于OnFileNew()的定制1、问题的提出使用MFC自动创建的应用程序中,对文档的新建和打开提供较好的支持。但是当我们的应用程序要求支持多种文档类型(注意不是多文档)时问题就出现了——当我们要创建一个新的文档时只能从MFC提供的默认的(也是十分简单的)CNewTypeDlg对话框中选择我们想要创建的文档类型。默认的CNewTypeDlg中文档模板名称的显示最长只有6个字符,给的信息是十分的少,

1570

华为OD机试 新系统真题-收集灵草(Java/Py/C++/Go/C/Js)

华为OD机试 新系统真题【收集灵草】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【收集灵草】多语言题解。

qq_45776114的博客 545

孙鑫VC++深入详解:Lesson8 Part3---如何让对话框捕获WM_KEYDOWN消息?

因为对话框程序中,某些特点的消息,如按键消息被Windows内部的对话框过程处理了,即基类完成了或者被发送给子控件处理,所以在对话框类中就不能捕获到按键消息 解决办法:在子类中覆盖基类的特定消息过滤响应函数. 在MFC中,用虚函数ProcessMessageFilter()来过滤或者响应菜单和对话框的特定Windows消息. 在子类中覆盖它,接管消息响应. 本例中,在CWinSun

-----------------------------不要在跟自己无关的事情上浪费时间 3210

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

孙鑫VC学习笔记:第四讲 MFC消息映射机制和CDC类的使用

1.在文档-视图结构中,View类总是覆盖在CMainFrm框架窗口之上的.所以框架窗口无法对   WM_LBUTTONDOWN消息做出响应. 2.在添加WM_LBUTONDOWN后,查看我们的工程的源程序变化   查看 DrawView.h ------------------------------------------------------------------------

456

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

孙鑫VC++深入详解:Lesson6 Part5--- 给自建的动态子菜单配置COMMAN消息响应函数

在MainFrm.cpp文件中的 int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)  中创建好子菜单: CMenu menu; menu.CreatePopupMenu(); //初始化对象menu --- 创建一个空的弹出菜单 GetMenu()->InsertMenu(2,MF_BYPOSITION|MF_POPUP,(U

-----------------------------不要在跟自己无关的事情上浪费时间 2490

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

孙鑫VC学习笔记:第四讲 MFC消息映射机制和CDC类的使用 收藏

 1.在文档-视图结构中,View类总是覆盖在CMainFrm框架窗口之上的.所以框架窗口无法对  WM_LBUTTONDOWN消息做出响应.2.在添加WM_LBUTONDOWN后,查看我们的工程的源程序变化  查看 DrawView.h-------------------------------------------------------------------------------

vooohooodooo的专栏 507

孙鑫VC++讲座笔记-(4)MFC消息映射机制的剖析

孙鑫VC++讲座笔记-(4)MFC消息映射机制的剖析   一,消息映射机制 1,消息响应函数:(例:在CDrawView类响应鼠标左键按下消息)     1)在头文件(DrawView.h)中声明消息响应函数原型。         //{{AFX_MSG(CDrawView)   //注释宏         afx_msg void OnLButtonDown(UINT nFlag

无知人生,记录点滴 2642

MFC(菜单,孙鑫C++第六讲笔记整理)

1.当对某菜单添加消息响应函数时,4个类的消息响应优先次序分别是:a.View;b.CDOC;c.CMainFrame.d.CWinAPP.为什么?请参阅《深入浅出》   2.消息分类:a;标准消息(以WM_开头的消息,但不包括ON_COMMAND);b;命令消息 ON_COMMAND(IDM_PHONE1, OnPhone1),菜单和工具栏的消息。c.通告消息:按钮,列表框发出的消息。

hellokazhang的博客 5558

孙鑫VC++视频学习笔记之5: VC菜单相关编程

<br />  阅读本文前,我们假设您已经:<br />   1,知道如何创建一个单文档的App Wizard<br />   2,知道C++ 类、函数重载等简单知识<br />   3,知道如何给View类或者Doc文档添加成员变量<br />   4,会用MFC的IDE调试工具最好,那么本文的程序您可以copy去调试<br />   5,知道如何为某个框架类添加虚函数或消息处理函数<br /><br />  一、 消息的分类:<br /><br />  消息的分类:标准消息,命令消息,通告消息。<br

Bilter的专栏 1682

孙鑫MFC消息映射机制的剖析

一,消息映射机制 1,消息响应函数:(例:在CDrawView类响应鼠标左键按下消息)  1)在头文件(DrawView.h)中声明消息响应函数原型。 //{{AFX_MSG(CDrawView)   //注释宏 afx_msg void OnLButtonDown(UINT nFlags, CPoint point); //}}AFX_MSG   //注释宏 说明: 在注释宏之

明月松间照,清泉石上流! 1035
上一篇: 孙鑫VC学习笔记:第十三讲 (一) 用CArchive类读取与保存文件
下一篇: 孙鑫VC学习笔记:第十三讲 (二) 设置文档标题
Savitch
博客等级 码龄16年 84粉丝 130原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值