jbstys 发表于 2006-5-13 18:57:00

求助:怎么样逐一修改属性块的值呢?

<P>我自己定义了一个块,里面有两段文字,比如值分别是A,B</P>
<P>现在我在插入这个块的时候根据需要把他们的值分别变成 C和D</P>
<P>请问怎么做?</P>
<P>我定义属性的时候是怎么定义的</P>
<P>&nbsp;pAttdef-&gt;setTextString("A");<BR>&nbsp;pAttdef-&gt;setTag("Tag");<BR>……</P>
<P>&nbsp;pAttdef1-&gt;setTextString("B");<BR>&nbsp;pAttdef1-&gt;setTag("Tag1");</P>
<P>修改属性的时候我是根据范例修改的具体的如下:</P>
<P><BR>&nbsp;&nbsp;&nbsp; AcDbAttribute *pAtt=new AcDbAttribute();<BR>&nbsp;&nbsp;&nbsp; pAtt-&gt;setPropertiesFrom(pAttdef);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;pAtt-&gt;setInvisible(pAttdef-&gt;isInvisible());<BR>&nbsp;&nbsp;&nbsp; basePoint = pAttdef-&gt;position();</P>
<P>&nbsp;&nbsp;&nbsp; basePoint +=pBlkRef-&gt;position().asVector();<BR>&nbsp;&nbsp;&nbsp; pAtt-&gt;setPosition(basePoint);<BR>&nbsp;&nbsp;&nbsp; pAtt-&gt;setHeight(pAttdef-&gt;height());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pAtt-&gt;setRotation(pAttdef-&gt;rotation());</P>
<P><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pTagPrompt = pAttdef-&gt;tag();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(pTagPrompt="Tag")<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pAtt-&gt;setTextString("C");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(pTagPrompt="Tag1")<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pAtt-&gt;setTextString("D");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp; AcDbObjectId attId;<BR>&nbsp;&nbsp;&nbsp; pBlkRef-&gt;appendAttribute(attId,pAtt);<BR>&nbsp;&nbsp;&nbsp; pAtt-&gt;close();</P>

<P>结果是所有的文字的值都被变成了D</P>
<P>我看了下,应该是&nbsp; pAtt-&gt;setTextString();&nbsp; 这个函数使用错误,</P>
<P>他是不是对属性块中所有的文字项都赋值,并不是根据Tag的不同赋值的,有没有可以根据Tag的不同,赋不同的值的函数阿?</P>
<P>小弟刚刚开始学习,困难很大</P>
<P>请各位前辈多多指教</P>
<P>谢谢,谢谢!</P>

<P><BR><BR>&nbsp;</P>

jbstys 发表于 2006-5-15 21:00:00

<P>麻烦各位高手,给说一下</P>
<P>这个问题对于你们来说很简单,可对我来说是一个坎</P>
<P>好几天了一直没有找到答案,程序的编写也停了好几天了,</P>
<P>麻烦路过的给指点下,小弟感激不尽</P>
<P>&nbsp;</P>

wangqin020 发表于 2006-5-15 22:32:00

<P>我也遇到了这个问题</P>
<P>麻烦哪位说一下啊!!</P>

wangqin020 发表于 2006-5-17 10:05:00

<P>敢问楼主的问题解决了没有?</P>
<P>如果解决了能否给在下说一下</P>

jbstys 发表于 2006-5-18 18:16:00

<P>还没有解决 :(</P>
<P>CAD里面可以根据tag修改它的值</P>
<P>可程序不知道怎么写</P>
<P>等位高手给解决下</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>

god2005 发表于 2006-8-29 20:23:00

<P> if(pTagPrompt="Tag")<BR>&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pAtt-&gt;setTextString("C");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(pTagPrompt="Tag1")<BR>&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pAtt-&gt;setTextString("D");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; }</P>
<P>你书附值,还是判断,你告诉我好了</P>

nc2t 发表于 2006-8-30 10:42:00

<P>呵呵~~VC的语法的基本知识,应该是两个等号</P>
<P>if(pTagPrompt =="Tag"){pAtt-&gt;setTextString("<BR>")}</P>
页: [1]
查看完整版本: 求助:怎么样逐一修改属性块的值呢?