Cómo usar vb6.0 para completar la función del área de conversión de línea central de Mapgis
Permítame darle algo de código VC. El mejor lenguaje de desarrollo para MapGIS es C. La razón principal por la que la transferencia de zona no es exitosa es que la comprensión de la zona no es lo suficientemente profunda.
// Área de escritura
void CInPutSpcRegTool::WriteToReg()
{
// Condiciones
if (m_regailt; 1 || m_numArcDotslt; 3 || m_arcDots==NULL)
{
return;
}
/ / Crear área
long rdat[2];
long lno = 0;
long regno = 0
LIN_INFO lininfo;
LIN_INFO *infoTmp = NULL;
_GetLinDefParam(amp; infoTmp);
lininfo = *infoTmp;
lno = _AppendLin ( m_regai, m_arcDots, m_numArcDots, & lininfo, 2);
rdat[0] = m_numArcDots 1
//Número de puntos y círculos
rdat[; 1] = lno;
regno = _AppendReg(m_regai,rdat,2,amp;m_reginfo);
((CPowerView *)m_pObj)-gt;_UpdateWindow(); p>
p>
//Escribe la estructura de atributos predeterminada
if (regnolt; 1)
{
return;
}
CFIELD_HEAD fld;
CATT_STRU struTmp;
CATT_STRU *stru = NULL
char
*att = NULL;
short
fldno = -1;
_GetRegAttStru(m_regai, amp; stru);
//Estructura de atributos actuales
_srGetSpcRegDefStru(amp; struTmp);
//Estructura de atributos predeterminada
//Escribir atributos
char buf[256 ] = "";
//Nivel
fldno = -1;
fldno = _GetFldNo(stru, "RegLev");
if (fldnolt; 0)
{
fldno = _GetFldNo(amp; struTmp, "RegLev"
fld); p>
= struTmp.fldEntry[fldno];
_AppendRegStruFld(m_regai, 1, amp; fld);
fldno = _GetFldNo(stru, "RegLev");
}
si (fldnogt
;=0)
{
_GetRegAtt(m_regai,regno,amp;stru,amp;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;
//Categoría
fldno = _GetFldNo(stru, "RegType"); fldnolt; 0)
{
fldno = _GetFldNo(amp; struTmp, "RegType");
fld
= struTmp. fldEntry[fldno];
_AppendRegStruFld(m_regai, 1, amp; fld);
fldno = _GetFldNo(stru, "RegType");
}
if (fldnogt;=0)
{
_GetRegAtt(m_regai, regno, amp; stru, amp; att
); lstrcpy(buf, m_spcregcfg.SRegName);
_SetFldFromStr(att, stru, "RegType", buf
_WriteAtt(m_regai, REG, regno, stru, att); /p>
}
_SetChangeFlag(m_regai, 1);
// Consejos
char tempStr[MAX_STR_LEN]=""
sprintf(tempStr, LOAD_STR_BY_ID(IDS_INPUT_REG_SUC), m_strInput);
m_ToolIdent.CommandPrompt(tempStr);
}