【mfc/VS2022】计图实验:绘图工具设计知识笔记3

实现类对串行化的支持

如果要用CArchive类保存对象的话,那么这个对象的类必须支持串行化。一个可串行化的类通常有一个Serialize成员函数。要想使一个类可串行化,要经历以下5个步骤:

1、从CObject派生类

2、重写Serialize成员函数

3、使用DECLARE_SERIAL宏:

DECLARE_SERIAL( class_name )参数就是想要成为可串行化类的类名。

4、定义不带参数的构造函数

5、为类在实现文件中使用IMPLEMENT_SERIAL宏:

IMPLEMENT_SERIAL( class_name, base_class_name, wSchema )

第一个参数是类的名称;第二个参数是基类的名称;第三个参数是版本号

详见:

利用CObArray类对串行化的支持保存和加载 数据

简洁版:只包含五步的内容

消息框messagebox()详细介绍及使用方法

简介:

MessageBox指的是显示一个模态对话框,其中包含一个系统图标、 一组按钮和一个简短的特定于应用程序消息,如状态或错误的信息。消息框中返回一个整数值,该值指示用户单击了哪个按钮。

语法:

复制代码
int MessageBoxW(
  [in, optional] HWND    hWnd,
  [in, optional] LPCWSTR lpText,
  [in, optional] LPCWSTR lpCaption,
  [in]           UINT    uType
);

参数:

hWnd:

此参数代表消息框拥有的窗口。如果为NULL,则消息框没有拥有窗口。

lpText:

消息框的内容。

lpCaption:

消息框的标题。

uType:

指定一个决定对话框的内容和行为的位标志集。此参数可以为下列标志组中标志的组合。指定下列标志中的一个来显示消息框中的按钮以及图标。

详见参考:

参考1

参考2

底部状态栏的设置

之前的博客说了设置状态栏的文本,但不够具体。

首先,要把CMainfram类的 wndStatusBar改成public,对应cpp文件里有一个indicators数组

复制代码
ID_INDICATOR_MOUSE_POS是后面添加进去的,在string table里可以定义这个id,修改标题,然后在上面的数组里面加入这个id。
复制代码
wndStatusBar.SetPaneText(2, str);这个2指的就是indicators数组的下标。

CStatusBar 类https://learn.microsoft.com/zh-cn/cpp/mfc/reference/cstatusbar-class?view=msvc-170

相关推荐
不会就选b6 小时前
C++补充部分(一)--lambda 表达式
开发语言·c++
丰色木夕13 小时前
Ubuntu22.04下源码编译安装USD-Brep
c++·ubuntu·nvidia·usd-brep
衍玊16 小时前
多路转接原理与应用
c++
171320330计算机毕设编程17 小时前
计算机毕业设计 基于springboot+vue的在线观鸟视频播放网站 LW PPT
java·大数据·vue.js·spring boot·算法·课程设计
himobrinehacken17 小时前
位运算揭秘:左右移与符号位陷阱
c语言·c++·算法·安全
Android小码家20 小时前
Vehicle 实战 自定义属性+测试demo
java·c++·framework·vhal·vehicle
hetao173383720 小时前
2026-10-19 hetao1733837 的刷题记录
c++·算法
夏虫不可与之言冰20 小时前
第三课 点亮 LED 与定时器非阻塞闪烁
c语言·c++·vscode·单片机·嵌入式硬件·物联网
辛苦才能20 小时前
C++ 哈希表深度解析:删除为什么必须打标记,负载因子为什么卡 0.7
开发语言·数据结构·c++·算法
miller-tsunami20 小时前
STL简介&string相关知识点
开发语言·c++·string