當前位置:編程學習大全網 - 編程語言 - 如何運用vb6.0完成mapgis中線轉換區的功能

如何運用vb6.0完成mapgis中線轉換區的功能

給妳壹點VC代碼吧,MapGIS最佳開發語言是C++,轉區不成功主要是因為對區的理解不夠深入。

// 寫入區

void CInPutSpcRegTool::WriteToReg()

{

// 條件

if (m_regai<1 || m_numArcDots<3 || m_arcDots==NULL)

{

return;

}

// 造區

long rdat[2];

long lno = 0;

long regno = 0;

LIN_INFO lininfo;

LIN_INFO *infoTmp = NULL;

_GetLinDefParam(&infoTmp);

lininfo = *infoTmp;

lno = _AppendLin(m_regai,m_arcDots,m_numArcDots,&lininfo,2);

rdat[0] = m_numArcDots+1;

//點數+圈數

rdat[1] = lno;

regno = _AppendReg(m_regai,rdat,2,&m_reginfo);

((CPowerView *)m_pObj)->_UpdateWindow();

// 寫入默認屬性結構

if (regno<1)

{

return;

}

CFIELD_HEAD fld;

CATT_STRU struTmp;

CATT_STRU *stru = NULL;

char

*att = NULL;

short

fldno = -1;

_GetRegAttStru(m_regai,&stru);

//當前屬性結構

_srGetSpcRegDefStru(&struTmp);

//默認屬性結構

// 寫入屬性

char buf[256] = "";

//級別

fldno = -1;

fldno = _GetFldNo(stru,"RegLev");

if (fldno<0)

{

fldno = _GetFldNo(&struTmp,"RegLev");

fld

= struTmp.fldEntry[fldno];

_AppendRegStruFld(m_regai,1,&fld);

fldno = _GetFldNo(stru,"RegLev");

}

if (fldno>=0)

{

_GetRegAtt(m_regai,regno,&stru,&att);

sprintf(buf,LOAD_STR_BY_ID(IDS_SPCREG_LEV),m_reglev);

_SetFldFromStr(att,stru,"RegLev",buf);

_WriteAtt(m_regai,REG,regno,stru,att);

}

fldno = -1;

//類別

fldno = _GetFldNo(stru,"RegType");

if (fldno<0)

{

fldno = _GetFldNo(&struTmp,"RegType");

fld

= struTmp.fldEntry[fldno];

_AppendRegStruFld(m_regai,1,&fld);

fldno = _GetFldNo(stru,"RegType");

}

if (fldno>=0)

{

_GetRegAtt(m_regai,regno,&stru,&att);

lstrcpy(buf,m_spcregcfg.SRegName);

_SetFldFromStr(att,stru,"RegType",buf);

_WriteAtt(m_regai,REG,regno,stru,att);

}

_SetChangeFlag(m_regai,1);

// 提示

char tempStr[MAX_STR_LEN]="";

sprintf(tempStr,LOAD_STR_BY_ID(IDS_INPUT_REG_SUC),m_strInput);

m_ToolIdent.CommandPrompt(tempStr);

}

  • 上一篇:列表編程
  • 下一篇:高考誌願十大熱門專業
  • copyright 2024編程學習大全網