孙鑫VC学习笔记:第十三讲 (五) 保存可串行化的类对象 如何获取文档与视类指针

在视图上创建ListCtrl 一般来说在对话框上创建ListCtrl,这次演示下如何在视图上创建ListCtrl。 立即下载

如何获取视类指针:
1.首先要获得第一个视类对象在视类对象列表中的位置,用GetFirstViewPosition方法
virtual POSITION GetFirstViewPosition( ) const;
 A POSITION value that can be used for iteration with the GetNextView member function.
  POSITION   A value used to denote the position of an element in a collection; used by 
  MFC collection classes.(用来表示一个值在集合中元素的位置,为MDC的集合类所使用)
 Call this function to get the position of the first view in the list of views associated with the document.
 
2.然后通过GetNextView当前位置视类对象的指针
注:单文档类只有一个视类对象
 一个文档类对象能和多个视类对象相关,一个视类对象只和一个文档类对象相关.
---------------------------------------------------------------------------------
在CGraphicDoc::Serialize方法中
使用CArchive对象保存可串行化的类对象

要在文档类中访问定义在视类中的对象,
首先要获得第一个视类对象在视类对象列表中的位置,需要用到函数CDocument::GetFirstViewPosition,
然后通过GetNextView当前位置视类对象的指针.

---------------------------------------------------------------------------------

文档类中调用Serialize保存一个可串行化的CGraph类的对象时,实际上是调用了CGraph类的
对象本身的Serialize函数完成各成员数据的保存,这个调用过程由框架自动完成,
所以对象本身的Serialize方法中,设定保存该对象时需要保存那些成员,
这些工作在你编写可串行化的类时去确定.
---------------------------------------------------------------------------------
在CObArray::Serialize方法中
使用CArchive对象保存可串行化的类对象
m_obArray由CObArray继承而来,CObArray本身支持可串行化,
所以我们可以直接调用该对象的Serialize方法保存对象数据

---------------------------------------------------------------------------------
CObArray本身支持可串行化,我们也可以在文档类中定义一个 CObArray对象 m_obArray,
然后在View中调用该对象的Add方法实现对象的保存。这样就可以不用在CDocument类中
的Serialize方法中再写保存数据的代码了。
1.在文档类中定义一个CObArray 变量
 CObArray m_obArray;
2.在View中可以这样调用m_obArray
3.在CGraphicDoc::Serialize方法中,
 CGraphicDoc *pDoc=GetDocument();
 pDoc->m_obArray.Add(pGraph);
 

---------------------------------------------------------------------------------

如何获取文档类的指针?
我们在View类中发现有一个GetDocument()方法,这个方法返回值就是一个文档类指针,
可以用这个方法直接获得文档类指针。 


别再瞎改网络结构了!解决YOLO小目标检测痛点,我用这招把mAP提了15% 本文基于我7年工业PCB缺陷检测、无人机航拍、安防监控项目的一线落地经验,针对YOLO小目标检测最痛的「漏检率高、特征丢失、精度难提升」三大核心问题,拆解出。本文全程配套小目标特征丢失原理图、分块训练流程图、切图前后效果对比图、mAP提升柱状图、多方案性能对比表等可视化内容,从YOLO天生不擅长小目标的底层根源、方案核心原理、可直接复制的代码实现,到工业场景实测验证、新手必踩的10个坑位避坑指南,全链路讲透。 阅读详情

相关推荐

adams案例分析_案例1(麦弗逊悬架子系统创建)

本文字数3292字83图,建议阅读时间26分钟首先看下案例1的麦弗逊悬架数模结构就不细讲了,从数模上主要是获取硬点坐标(铰接点、安装点、参考点)及大部件结构(副车架、摆臂、转向节等实际运动过程中会产生变形的部件,在ADAMS Car中我们就可以用柔性体来搭建)再来回顾下上一篇讲到的模型元素1、Hardpoint——硬点(只有位置没有方向)2、Parameter Variable——参数...

weixin_39609407的博客 6475

孙鑫VC学习笔记:第十三讲 保存可串行化的类对象 如何获取文档与视类指针

如何获取视类指针:1.首先要获得第一个视类对象在视类对象列表中的位置,用GetFirstViewPosition方法virtual POSITION GetFirstViewPosition( ) const; A POSITION value that can be used for iteration with the GetNextView member function.  POSITIO

遐迩思的专栏 3222

铭飞MCMS源码部署

文章目录前言一、下载铭飞源码二、部署源码1.使用IDEA打开源码2.配置tomcat环境2.1下载tomcat并测试是否可以成功启动(此处不赘述)2.2在IDEA中安装tomcat环境并配置3.添加数据库,并配置3.1新建数据库3.2 导入sql配置三、启动测试 前言 铭飞MCMS基于IDEA、tomcat和mysql的环境搭建。 提示:以下是本篇文章正文内容,下面案例可供参考 一、下载铭飞源码 gitee:https://gitee.com/mingSoft/MCMS/releases(各种版本按需下

MARS_ZORO的博客 4063

VS2010 MFC中 在FormView派生类里获取文档类指针的方法

经过苦苦调试,今晚终于解决了一个大问题。 我想要实现的是:在一个FormView的派生类里获取到文档类的指针。 但是出现问题:试了很多办法,始终无法获取到。 终于,此问题在我不懈地调试加尝试下解决了。 现把我解决方法共享之,希望帮到遇到同样问题的人,因为这个问题实在是太让我恼火了!!! 首先头文件: #include "MainFrm.h"#include "XXXDoc....

weixin_30364325的博客 319

某教育平台线上用户流失分析

本项目基于某教育平台的用户登录信息、用户个人信息以及用户课程学习记录三信息表,挖掘了平台流量以及用户流失等信息。使用python对数据进行预处理,使用tableau进行数据可视化分析。该教育平台正值窗口期,平台流量没有良好的留存水平,但有良好的发展趋势,需要深入分析用户留存率低,做好招新促活营销。该教育平台的基本盘在广东、湖北、河南、贵州等省份,线上教育的潜在用户可能更多分布在线下教育资源不充足、受疫情影响更为严重的地区。

fhy12的博客 1299

TCNOpen实现TRDP通信协议(源码编译运行测试)

概述 本文介绍了通过TCNOpen开源源码实现TRDP通信,包括源码下载,开发环境搭建,编译运行,测试。 Linux环境下编译运行TRDP (一) 下载CANOpen源码。 下载地址:https://sourceforge.net/p/tcnopen/trdp/HEAD/tree/ (二) 源码编译 下载源码解压过后,在根目录文件readme-makefile.txt有介绍源码的配置和编译方法。 在trdp/config目录下可以看到包含在linux环境下的编译配置文件LINUX_config;执行”m

fengweibo112的博客 9630

孙鑫:第十三讲 用CArchive类读取与保存文件

阅读本文前,我们假设您已经:    1,知道如何创建一个单文档的App Wizard    2,知道C++ 类、函数重载等简单知识    3,知道如何给View类或者Doc文档添加成员变量    4,会用MFC的IDE调试工具最好,那么本文的程序您可以copy去调试    5,知道如何为某个框架类添加虚函数或消息处理函数      本课内容:      1, 首先讲解了一下什么是

八零后 758

NAO V6 开发环境的配置(附所有文件)

NAO V6开发环境配置前言环境Robot SettingsChoregraphe 2.8.5.10python2.7+naoqi2.8+opencv4.1.0putty与FileZilla 前言 学校的机器人摸索了一段时间,之前摸爬滚打探索环境,之前没接触这类机器人可能会非常艰辛,希望能给需要的人一些帮助。Nao与pepper通用 环境 win10(x64)+naoqi2.8 1、Robot S...

wbhhello的博客 3219

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

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

413

【Arduino 动手做】构建一个迷你 Las Vegas RGB LED 球体

《Arduino迷你拉斯维加斯球体项目:15岁少年的创意挑战》 15岁的Ben通过本项目展示了如何利用Arduino平台制作一个经济实惠的迷你拉斯维加斯球体夜灯。该项目涉及LED选择(采用WS2812B可编程灯带)、电子元件配置(含Arduino Nano微控制器和红外遥控)以及3D建模设计(100毫米直径球体)。项目难点包括LED布局优化、供电方案设计和3D打印外壳制作。Ben详细记录了从背景研究、电路设计到最终实现的完整过程,特别强调了分辨率与成本的平衡,以及如何通过白色扩散器改善视觉效果。这个项目不仅

雕爷学编程 1024

YOLOv11涨点改进| SCI一区2026 |独家创新首发、特征融合改进篇|引入FAFM特征对齐融合模块,通过特征对齐和融合两个阶段,助力多模态融合小目标检测,小目标检测,SAR图像目标检测高效涨点

🔥本文提出了一种改进YOLOv11网络模型的方法,通过引入FAFM(特征对齐融合模块)来解决多模态目标检测中的特征空间错位问题。FAFM模块采用可变形卷积和内容引导注意力机制,有效实现了跨模态特征对齐与融合,充分利用了不同模态间的互补信息。该方法在保持模型轻量化的同时,显著提升了目标检测精度和鲁棒性,特别是在复杂背景和模态差异较大的场景下表现突出。文章详细介绍了FAFM模块的结构、原理、优势,并提供了完整的代码实现和模型配置方案,为多模态目标检测任务提供了实用的技术参考。

Ai缝合怪、助力小伙伴高效发论文 267

孙鑫VC学习笔记(图形的保存和重绘)

孙鑫VC学习笔记 11(1)第11课  如何让CDC上输出的文字、图形具有保持功能 1.创建4个菜单,为其添加消息响应,用成员变量保存绘画类型。添加LButtonDown和Up消息。2.当窗口重绘时,如果想再显示原先画的数据,则需要保存数据。为此创建一个新类来记录绘画类型和两个点。class CGraph  {public:CPoint m_ptOrigin;//起点CPoint m_

1997

YOLOv8 智能交通违章检测 - 机动车道占用(违停/非机动车占道)详解

本文提出基于YOLOv8的智能交通违章检测方案,主要针对机动车道占用问题。系统整合目标检测、目标跟踪和ROI区域判定,实现两种典型场景检测:违章停车(静止超时)和非机动车/行人占道。详细介绍了系统架构、配置文件设计、核心逻辑实现及可视化模块,包括ROI区域管理、状态跟踪和违章判定算法。针对实际应用中的堵车误判、非机动车误报等问题,提出了密度检测、轨迹分析和自适应阈值等优化策略。该方案计算量适中,适合边缘设备部署,并建议配套开发ROI标定工具和证据链保存功能。

u010117029的博客 235

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

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

遐迩思的专栏 1812

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

孙鑫VC学习笔记:第七讲

七、对话框 2006年8月5日14:25因为笔记是用OneNote做的,上传以后为看不到图片,于是我截图放到相册上面,相册地址为:http://photo.163.com/photos/goodmoood/61588745/   如何创建一个对话框1.先插入一个对话框,对话框本身也是一个窗口Insert->resouce 2.我们需要

遐迩思的专栏 5991

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

孙鑫VC学习笔记:第十一讲 (二) 图形的保存与重绘方法

 图形的保存和重绘编写画图代码,设定一个标识,在OnLButtonDown中保存鼠标按下去的点,在OnLButtonUp中捕获鼠标弹起的点,利用switch语句分别画图。这是上节课的内容,上节课还讲了窗口重绘的原理,实际上分为两步,首先擦除以前的背景,然后再进行窗口重绘。所以当拖动窗口改变窗口大小时,窗口要发生重绘,首先会擦除以前的背景,于是先前所画图像会消失。 解决办法是将画图代码写在OnD

zhangning2095的专栏 570

孙鑫VC学习笔记:第十二讲 (四) 用API函数、CFile类操作文件

用Win32API函数操作文件:1.保存文件  首先用CreateFile 打开文件,然后调用WriteFile将数据写入到文件当中。    2.读取文件   首先用CreateFile 打开文件,然后调用ReadFile读取数据到ch字符数组中。----------------------------------------------------------------------------

梦想---软件设计师 1287

孙鑫VC学习笔记:第十一讲 (二) 图形的保存与重绘方法一

图形的保存和重绘 编写画图代码,设定一个标识,在OnLButtonDown中保存鼠标按下去的点,在OnLButtonUp中捕获鼠标弹起的点,利用switch语句分别画图。这是上节课的内容,上节课还讲了窗口重绘的原理,实际上分为两步, 首先擦除以前的背景,然后再进行窗口重绘。 所以当拖动窗口改变窗口大小时,窗口要发生重绘,首先会擦除以前的背景,于是先前所画图像会消失。 解决办法是将画

514

孙鑫VC学习笔记:第十一讲 图形的保存与重绘方法一

 图形的保存和重绘编写画图代码,设定一个标识,在OnLButtonDown中保存鼠标按下去的点,在OnLButtonUp中捕获鼠标弹起的点,利用switch语句分别画图。这是上节课的内容,上节课还讲了窗口重绘的原理,实际上分为两步,首先擦除以前的背景,然后再进行窗口重绘。所以当拖动窗口改变窗口大小时,窗口要发生重绘,首先会擦除以前的背景,于是先前所画图像会消失。解决办法是将画图代码写在OnDr

遐迩思的专栏 2859

孙鑫VC++视频学习笔记之13:文档与串行化

转自:http://webbery.tianyablog.com  阅读本文前,我们假设您已经:   1,知道如何创建一个单文档的App Wizard   2,知道C++ 类、函数重载等简单知识   3,知道如何给View类或者Doc文档添加成员变量   4,会用MFC的IDE调试工具最好,那么本文的程序您可以co

yx601的专栏 785
上一篇: 孙鑫VC学习笔记:第十三讲 (四) 生成可串行化的类
下一篇: 孙鑫VC学习笔记:第十三讲 (六) 关于释放内存
Savitch
博客等级 码龄16年 84粉丝 130原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值