cosn 发表于 2015-12-18 12:38:28

update_cb 下面选择面 点击 button 按钮修改颜色为什么无效?

本帖最后由 cosn 于 2015-12-18 12:49 编辑

我做了个对话框,用面收集器选择面,然后修改颜色,下面的代码是在选择后,我点击应用之后,面的颜色会修改成功,是正常的。但是我在对话框上面加了一个 button 按钮,想通过我点击这个按钮来修改选择的面的颜色,而不是点击应用修改,我直接把 apply_cb() 下面的代码复制到 button 下面,点击这个 button 按钮来修改却没有反应,是怎么回事呢?

下面是点击对话框 “应用”按钮的代码,正常的。

wint gaimianyanshe::apply_cb()
{
int errorCode = 0;
try
{

DisplayModification *displayModification1;
displayModification1 = theSession->DisplayManager()->NewDisplayModification();
displayModification1->SetApplyToAllFaces(false);
displayModification1->SetApplyToOwningParts(false);
displayModification1->SetNewColor(28);


vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;
vector<DisplayableObject *> objects1;


for(int i=0;i<faceobjtss.size();i++)
{
objects1.push_back(dynamic_cast<Face *>(faceobjtss));
};
displayModification1->Apply(objects1);
objects1.clear();
delete displayModification1;
displayModification1 = NULL;

}
catch(exception& ex)
{
//---- Enter your exception handling code here -----
errorCode = 1;
gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
}
return errorCode;
}



下面是button 下面的代码,点击却没有用,为什么呢?
int gaimianyanshe::update_cb(NXOpen::BlockStyler::UIBlock* block)
{
    try
    {
      if(block == face_select0)
      {

      }
      else if(block == button01)
      {
      
                DisplayModification *displayModification1;
                displayModification1 = theSession->DisplayManager()->NewDisplayModification();
                displayModification1->SetApplyToAllFaces(false);
                displayModification1->SetApplyToOwningParts(false);
                displayModification1->SetNewColor(28);


                vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;
                vector<DisplayableObject *> objects1;


                for(int i=0;i<faceobjtss.size();i++)
                {
                objects1.push_back(dynamic_cast<Face *>(faceobjtss));
                };
                displayModification1->Apply(objects1);
                objects1.clear();
                delete displayModification1;
                displayModification1 = NULL;


      }

    }
    catch(exception& ex)
    {
      //---- Enter your exception handling code here -----
      gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
    }
    return 0;
}



c1_wangyf 发表于 2017-3-30 15:19:32

楼主这个问题解决了吗?

解决了话,分享一下是怎么弄的,也遇到这个问题......:'(
页: [1]
查看完整版本: update_cb 下面选择面 点击 button 按钮修改颜色为什么无效?