实现类对串行化的支持
如果要用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