找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 802|回复: 2

[求助]:请问怎么修改属性块中的多个文字呢

[复制链接]
发表于 2006-5-20 18:51:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
刚刚看到这个帖子在前边问过了
我怎么删不了这个帖子呢
问题解决了,谢谢前边的高手指点,是我的判断错了

:(

     if(pTagPrompt="Tag")  
//上面这句改成if(strcmp(pTagPrompt,"Tag")==0)
     {
        pAtt->setTextString("C");
      
     }
      if(pTagPrompt="Tag1")
//上面这句改成if(strcmp(pTagPrompt,"Tag1")==0)
     {
        pAtt->setTextString("D");
      
     }



我自己定义了一个块,里面有两段文字,比如值分别是A,B

现在我在插入这个块的时候根据需要把他们的值分别变成 C和D

请问怎么做?

我定义属性的时候是怎么定义的

pAttdef->setTextString("A");
pAttdef->setTag("Tag");
……

pAttdef1->setTextString("B");
pAttdef1->setTag("Tag1");

修改属性的时候我是根据范例修改的具体如下:


    AcDbAttribute *pAtt=new AcDbAttribute();
    pAtt->setPropertiesFrom(pAttdef);

    pAtt->setInvisible(pAttdef->isInvisible());
    basePoint = pAttdef->position();

    basePoint +=pBlkRef->position().asVector();
    pAtt->setPosition(basePoint);
    pAtt->setHeight(pAttdef->height());
     pAtt->setRotation(pAttdef->rotation());


     pTagPrompt = pAttdef->tag();
      
      
     if(pTagPrompt="Tag")
     {
        pAtt->setTextString("C");
      
     }
      if(pTagPrompt="Tag1")
     {
        pAtt->setTextString("D");
      
     }
     AcDbObjectId attId;
    pBlkRef->appendAttribute(attId,pAtt);
    pAtt->close();

结果是所有的文字的值都被变成了D

我看了下,应该是  pAtt->setTextString();  这个函数使用错误,

他是不是对属性块中所有的文字项都赋值,并不是根据Tag的不同赋值的,有没有可以根据Tag的不同,赋不同的值的函数阿?

小弟刚刚开始学习,困难很大

请各位前辈多多指教

谢谢,谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-5-24 23:57:46 | 显示全部楼层
楼上有个错误你注意没有?
if(A=B)     和  if(A==B)有没有区别呢?不要犯这个错误啊!

在遍历时候,可以加入这样判断,你就可以赋值你想的值了。

CString tagStr = pAttdef->tag();
if(tagStr == "tag1")   //“tag1”是你定义的值;
{
      pAtt->setTextString("A");
}
else if(tagStr == "tag2")  //“tag2”是你定义的值;
{
       pAtt->setTextString("B");
}
else
{
      pAtt->setTextString("C");
}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-5-25 13:14:19 | 显示全部楼层
顶一下
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-23 12:21 , Processed in 0.189648 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表