📄 mywall.cpp
字号:
#include "stdafx.h"
#include ".\mywall.h"
CMyWall::CMyWall(void)
{
number = 0;
}
CMyWall::~CMyWall(void)
{
}
void CMyWall::LoadFile(CString file)
{
CFile pf;
if(!pf.Open(file,CFile::modeRead))//只读
{
AfxMessageBox("打开文件失败");
return;
}
pf.Read(&number,sizeof(int));//读取第一个int 该值为已经设定了的图片的数目
for(int i=0;i<number;i++) //读取每一个图片属性
{
WallConfig temp;
pf.Read(&temp.edit,sizeof(bool));
pf.Read(&temp.id,sizeof(int));
pf.Read(&temp.offx,sizeof(int));
pf.Read(&temp.offy,sizeof(int));
pf.Read(&temp.centerx,sizeof(int));
pf.Read(&temp.centery,sizeof(int));
pf.Read(&temp.projectnumber,sizeof(int));
for(int j=0;j<temp.projectnumber;j++)
{
CPoint point;
pf.Read(&point.x,sizeof(long));
pf.Read(&point.y,sizeof(long));
temp.project.push_back(point);
}
//判断是否存在,如果存在,改写,否则,添加
std::set<WallConfig>::iterator is = wallconfig.begin();
is = wallconfig.find(temp.id);
if(temp.id==(*is).id) //如果找到就改写
{
*is = temp;
}
else
{
wallconfig.insert(temp);
}
}
pf.Close();
return;
}
void CMyWall::SaveFile(CString file)
{
CFile pf;
if(!pf.Open(file,CFile::modeCreate|CFile::modeWrite)){
AfxMessageBox("保存失败!");
return;
}
pf.Write(&number,sizeof(int));
std::set<WallConfig>::iterator is= wallconfig.begin();
for(int i=0;i<number;i++,is++)
{
WallConfig temp;
temp = *is;
pf.Write(&(temp.edit),sizeof(bool));
pf.Write(&(temp.id),sizeof(int));
pf.Write(&(temp.offx),sizeof(int));
pf.Write(&(temp.offy),sizeof(int));
pf.Write(&(temp.centerx),sizeof(int));
pf.Write(&(temp.centery),sizeof(int));
pf.Write(&(temp.projectnumber),sizeof(int));
std::vector<CPoint>::iterator ip = temp.project.begin();
for(int j=0;j<temp.projectnumber;j++,ip++)
{
CPoint temp1;
temp1 = *ip;
pf.Write(&(temp1.x),sizeof(long));
pf.Write(&(temp1.y),sizeof(long));
}
}
pf.Close();
return;
}
bool CMyWall::Insert(WallConfig& t)
{
std::set<WallConfig>::iterator is=wallconfig.begin();
is = wallconfig.find(t.id);
if(t.id == (*is).id)
{
return false;
}
else
{
wallconfig.insert(t);
this->number++;
}
}
bool CMyWall::find(int id,WallConfig*& p)
{
std::set<WallConfig>::iterator is = wallconfig.begin();
is = wallconfig.find(id);
if(id==(*is).id)
{
p = &*is;
return true;
}
else
{
if(p)
delete p;
p = NULL;
return false;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -