⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myeditview.cpp

📁 地理信息系统(GIS)相关.子图符号转成文字描述的功能.
💻 CPP
📖 第 1 页 / 共 4 页
字号:


 
	 		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 + -