求助:怎么样逐一修改属性块的值呢?
<P>我自己定义了一个块,里面有两段文字,比如值分别是A,B</P><P>现在我在插入这个块的时候根据需要把他们的值分别变成 C和D</P>
<P>请问怎么做?</P>
<P>我定义属性的时候是怎么定义的</P>
<P> pAttdef->setTextString("A");<BR> pAttdef->setTag("Tag");<BR>……</P>
<P> pAttdef1->setTextString("B");<BR> pAttdef1->setTag("Tag1");</P>
<P>修改属性的时候我是根据范例修改的具体的如下:</P>
<P><BR> AcDbAttribute *pAtt=new AcDbAttribute();<BR> pAtt->setPropertiesFrom(pAttdef);<BR><BR> pAtt->setInvisible(pAttdef->isInvisible());<BR> basePoint = pAttdef->position();</P>
<P> basePoint +=pBlkRef->position().asVector();<BR> pAtt->setPosition(basePoint);<BR> pAtt->setHeight(pAttdef->height());<BR> pAtt->setRotation(pAttdef->rotation());</P>
<P><BR> pTagPrompt = pAttdef->tag();<BR> <BR> <BR> if(pTagPrompt="Tag")<BR> {<BR> pAtt->setTextString("C");<BR> <BR> }<BR> if(pTagPrompt="Tag1")<BR> {<BR> pAtt->setTextString("D");<BR> <BR> }<BR> AcDbObjectId attId;<BR> pBlkRef->appendAttribute(attId,pAtt);<BR> pAtt->close();</P>
<P>结果是所有的文字的值都被变成了D</P>
<P>我看了下,应该是 pAtt->setTextString(); 这个函数使用错误,</P>
<P>他是不是对属性块中所有的文字项都赋值,并不是根据Tag的不同赋值的,有没有可以根据Tag的不同,赋不同的值的函数阿?</P>
<P>小弟刚刚开始学习,困难很大</P>
<P>请各位前辈多多指教</P>
<P>谢谢,谢谢!</P>
<P><BR><BR> </P> <P>麻烦各位高手,给说一下</P>
<P>这个问题对于你们来说很简单,可对我来说是一个坎</P>
<P>好几天了一直没有找到答案,程序的编写也停了好几天了,</P>
<P>麻烦路过的给指点下,小弟感激不尽</P>
<P> </P> <P>我也遇到了这个问题</P>
<P>麻烦哪位说一下啊!!</P> <P>敢问楼主的问题解决了没有?</P>
<P>如果解决了能否给在下说一下</P> <P>还没有解决 :(</P>
<P>CAD里面可以根据tag修改它的值</P>
<P>可程序不知道怎么写</P>
<P>等位高手给解决下</P>
<P> </P>
<P> </P>
<P> </P> <P> if(pTagPrompt="Tag")<BR> {<BR> pAtt->setTextString("C");<BR> <BR> }<BR> if(pTagPrompt="Tag1")<BR> {<BR> pAtt->setTextString("D");<BR> <BR> }</P>
<P>你书附值,还是判断,你告诉我好了</P> <P>呵呵~~VC的语法的基本知识,应该是两个等号</P>
<P>if(pTagPrompt =="Tag"){pAtt->setTextString("<BR>")}</P>
页:
[1]