// 寫入區
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);
}