📄 myeditview.cpp
字号:
short ai=GetEditArea(REG);
long i,linN;
long len;
REG_INFO rinf;
long *rdat;
int r=0;int g=0;int b=0;
int clrend;
_GetRegNum(ai,&i,&linN); //取区实体数,i返回逻辑数,linN返回物理数
for(i = 1;i < linN; i++)
{
if(_GetReg(ai,i,&rdat,&len,&rinf) <= 0)
continue;
//处理区实体代码
//设为旧库,先得到旧库里第i块区的颜色
strcpy(newEnv->slib,old);
_ModEnvFile(newEnv);
_ChangeMAPGISLib();
_GetAColorRGBValue(rinf.clr,&r,&g,&b);
//设为新库,找对应RGB的颜色值
strcpy(newEnv->slib,new1);
_ModEnvFile(newEnv);
_ChangeMAPGISLib();
clrend=_FindNearColor(r,g,b);
rinf.clr=clrend;
_UpdateRegInfo(ai,i,&rinf);
_UpdateWindow();
}
}
// delete newEnv; */
}
void CMyEditView::OnQuyanse()
{
char *old;
char *new1;
CLUJ lub;
lub.DoModal();
CString vv=lub.m_luj;
CString vvv=lub.m_luj2;
//vv.Replace("\P","\\\P");
if (vv!=""&&vvv!="")
{
old=(char*)(LPCTSTR)vv;
new1=(char*)(LPCTSTR)vvv;
//以上是准备工作
GISENV *newEnv;
newEnv=_GetEnv(NULL);
short ai=GetEditArea(REG);
long i,linN;
long len;
REG_INFO rinf;
long *rdat;
int r=0;int g=0;int b=0;
int clrend;
_GetRegNum(ai,&i,&linN); //取区实体数,i返回逻辑数,linN返回物理数
for(i = 1;i < linN; i++)
{
if(_GetReg(ai,i,&rdat,&len,&rinf) <= 0)
continue;
//处理区实体代码
//设为旧库,先得到旧库里第i块区的颜色
strcpy(newEnv->slib,old);
_ModEnvFile(newEnv);
_ChangeMAPGISLib();
_GetAColorRGBValue(rinf.clr,&r,&g,&b);
//设为新库,找对应RGB的颜色值
strcpy(newEnv->slib,new1);
_ModEnvFile(newEnv);
_ChangeMAPGISLib();
clrend=_FindNearColor(r,g,b);
rinf.clr=clrend;
_UpdateRegInfo(ai,i,&rinf);
_UpdateWindow();
}
}
}
void CMyEditView::OnXianyanse()
{
char *old;
char *new1;
CLUJ lub;
lub.DoModal();
CString vv=lub.m_luj;
CString vvv=lub.m_luj2;
//vv.Replace("\P","\\\P");
if (vv!=""&&vvv!="")
{
old=(char*)(LPCTSTR)vv;
new1=(char*)(LPCTSTR)vvv;
//以上是准备工作
GISENV *newEnv;
newEnv=_GetEnv(NULL);
short ai=GetEditArea(LIN);
long i,linN;
long len;
LIN_INFO linf;
D_DOT *lxy;
_GetLinNum(ai,&i,&linN); //取线实体数,i返回逻辑数,linN返回物理数
int r=0;int g=0;int b=0;
int clrend;
for(i = 1;i < linN; i++)
{
if(_GetLin(ai,i,&lxy,&len,&linf) <= 0)
continue;
//处理线实体代码
//设为旧库,先得到旧库里第i块区的颜色
strcpy(newEnv->slib,old);
_ModEnvFile(newEnv);
_ChangeMAPGISLib();
_GetAColorRGBValue(linf.lclr,&r,&g,&b);
//设为新库,找对应RGB的颜色值
strcpy(newEnv->slib,new1);
_ModEnvFile(newEnv);
_ChangeMAPGISLib();
clrend=_FindNearColor(r,g,b);
linf.lclr=clrend;
_UpdateLinInfo(ai,i,&linf);
_UpdateWindow();
}
}
}
void CMyEditView::OnDianyanse()
{
char *old;
char *new1;
CLUJ lub;
lub.DoModal();
CString vv=lub.m_luj;
CString vvv=lub.m_luj2;
//vv.Replace("\P","\\\P");
if (vv!=""&&vvv!="")
{
old=(char*)(LPCTSTR)vv;
new1=(char*)(LPCTSTR)vvv;
//以上是准备工作
GISENV *newEnv;
newEnv=_GetEnv(NULL);
short ai=GetEditArea(PNT);
long i,pntN;
short len;
PNT_INFO inf;
D_DOT xy;
char *dat;
_GetPntNum(ai,&i,&pntN); //取点数
int r=0;int g=0;int b=0;
int clrend;
for(i=1;i<pntN;i++)
{
if(_GetPnt(ai,i,&xy,&dat,&len,&inf)<=0)
continue;
//设为旧库,先得到旧库里第i块区的颜色
strcpy(newEnv->slib,old);
_ModEnvFile(newEnv);
_ChangeMAPGISLib();
_GetAColorRGBValue(inf.iclr,&r,&g,&b);
//设为新库,找对应RGB的颜色值
strcpy(newEnv->slib,new1);
_ModEnvFile(newEnv);
_ChangeMAPGISLib();
clrend=_FindNearColor(r,g,b);
inf.iclr=clrend;
_UpdatePntInfo(ai,i,&inf);
_UpdateWindow();
}
}
}
void CMyEditView::OnHuawen()
{
char *old;
char *new1;
CLUJ lub;
lub.DoModal();
CString vv=lub.m_luj;
CString vvv=lub.m_luj2;
//vv.Replace("\P","\\\P");
if (vv!=""&&vvv!="")
{
old=(char*)(LPCTSTR)vv;
new1=(char*)(LPCTSTR)vvv;
//以上是准备工作
GISENV *newEnv;
newEnv=_GetEnv(NULL);
short ai=GetEditArea(REG);
long i,linN;
long len;
REG_INFO rinf;
long *rdat;
int r=0;int g=0;int b=0;
int clrend;
_GetRegNum(ai,&i,&linN); //取区实体数,i返回逻辑数,linN返回物理数
for(i = 1;i < linN; i++)
{
if(_GetReg(ai,i,&rdat,&len,&rinf) <= 0)
continue;
//处理区实体代码
//设为旧库,先得到旧库里第i块区的颜色
strcpy(newEnv->slib,old);
_ModEnvFile(newEnv);
_ChangeMAPGISLib();
_GetAColorRGBValue(rinf.patclr,&r,&g,&b);
//设为新库,找对应RGB的颜色值
strcpy(newEnv->slib,new1);
_ModEnvFile(newEnv);
_ChangeMAPGISLib();
clrend=_FindNearColor(r,g,b);
rinf.patclr=clrend;
_UpdateRegInfo(ai,i,&rinf);
_UpdateWindow();
}
}
}
void CMyEditView::OnFdrp()
{
short ai=GetEditArea(PNT);
long i,pntN;
short len;
PNT_INFO inf;
D_DOT xy;
char *dat="";
char *old;char *new1;
CFDRP fdrp;
fdrp.DoModal();
CString vv=fdrp.m_old;
CString vvv=fdrp.m_new1;
old=(char*)(LPCTSTR)vv;
new1=(char*)(LPCTSTR)vvv;
_GetPntNum(ai,&i,&pntN); //取点数
for(i=1;i<pntN;i++)
{
int nLen = vvv.GetLength();
_GetPnt(ai,i,&xy,&dat,&len,&inf);
if(_GetPnt(ai,i,&xy,&dat,&len,&inf)<=0)
continue;
if (inf.type==PNT_NOTE)
if (!strcmp(dat,old))
{_DelPnt(ai,i);
_AppendPnt(ai,&xy,new1,nLen,&inf);}
}
_UpdateWindow();
}
void CMyEditView::OnSubtochar()
{
short ai=GetEditArea(PNT);
long i,pntN;
short len;
PNT_INFO inf;
D_DOT xy;
char *dat="";
CSTC stc;
stc.DoModal();
int zituhao=stc.m_stczitu;
int space=stc.m_stcjiange;
int layer=stc.m_layer;
CString zichuan=stc.m_stczichuan;
int nLen = zichuan.GetLength();
dat=(char*)(LPCTSTR)zichuan;
_GetPntNum(ai,&i,&pntN);
for(i=1;i<pntN;i++)
{
_GetPnt(ai,i,&xy,NULL,&len,&inf);
if(inf.type==1)
{
if (inf.info.sub.subno==zituhao)
{_DelPnt(ai,i);
inf.type=0;//改型
inf.info.ch.height=inf.info.sub.height;
inf.info.ch.width=inf.info.sub.width;
inf.info.ch.angle=inf.info.sub.angle;
inf.info.ch.space=space;
inf.layer=layer;
inf.info.ch.ifnt=1;
inf.info.ch.chnt=1;
_AppendPnt(ai,&xy,dat,nLen,&inf);}
}
}
_UpdateWindow();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -