PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

PLM之家PLMHome-国产软件践行者

[二次开发源码] NX二次开发中treelist 树控件创建的逻辑过程

[复制链接]

2014-2-12 19:13:34 7094 0

admin 发表于 2014-2-12 19:13:34 |阅读模式

admin 楼主

2014-2-12 19:13:34

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

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

x
  1. void tree::dialogShown_cb()
    6 X& R5 g' {; z1 o4 m! K
  2. {
    / B5 y  D) o; f/ U
  3.     try
    3 ?) o7 N4 T( u# g6 _
  4.     {& \9 ^( O' U$ B- R; x" Z5 M
  5.         //---- Enter your callback code here -----0 E# x! d4 I  S. O/ X+ Y% \/ f

  6. ' Y- J; G  b) W
  7.                                 , r1 p8 B6 W7 }6 v; x
  8.                 tree_control0->InserTColumn(0,"Name",140);$ B1 p( {: G/ q3 }$ \% c
  9.                 tree_control0->InsertColumn(1,"Feature Type",90);( @1 ^" ]$ j+ h+ Z& B' p" |2 R2 L9 y9 I
  10.             tree_control0->InsertColumn(2," Up to Date",70);
    9 z' Z. J3 Q7 i$ j% t4 ~

  11. 4 p" P+ m# E- y& O3 c/ [9 P
  12.                 tree_control0->SetColumnResizePolicy(0,Tree::ColumnResizePolicyConstantWidth);
    ! k% T% s& C; [9 n
  13.                 tree_control0->SetColumnResizePolicy(1,Tree::ColumnResizePolicyConstantWidth);
    # d8 r" L- q, J
  14.                 tree_control0->SetColumnResizePolicy(2,Tree::ColumnResizePolicyConstantWidth);
    . s, Z4 X6 S# u" S6 q3 H0 d% t  Y
  15. $ l% h( C( ~& W. F" M0 e/ O
  16.                 tree_control0->SetColumnDisplayType(2,Tree::ColumnDisplayIcon);
    $ p. F3 ^% T% V  v: D, V7 e
  17. : o! `( U" P3 v
  18.                 // create historymode
    ; D. X6 R. \$ M' V, V! x9 M
  19.                 historyModeNode = createInsertParentNode(this->tree_control0,"History Mode" ,NULL,nodeIcons[0],nodeIcons[0],Tree::NodeInsertOptionAlwaysFirst);$ q" c$ v3 P$ }
  20.                 viewNode = createInsertParentNode(this->tree_control0,"Model Views" ,historyModeNode,nodeIcons[1],nodeIcons[1],Tree::NodeInsertOptionLast);9 N  E7 S% ^# A
  21.                 camerasNode = createInsertParentNode(this->tree_control0,"Cameras" ,viewNode,nodeIcons[2],nodeIcons[2],Tree::NodeInsertOptionLast);3 G, I* W5 f1 ]9 e' Z) S8 p
  22.                 modelhistoryNode = createInsertParentNode(this->tree_control0,"Model History" ,camerasNode,nodeIcons[3],nodeIcons[3],Tree::NodeInsertOptionAlwaysLast);: O% f8 \: `' K/ A
  23.                 tree_control0->SetSortRootNodes(false);
    0 P; Z) n7 }7 v- _
  24.                 modelhistoryNode->Expand(Node::ExpandOptionExpand);2 z' V$ t6 e8 E  Y, c' b$ I3 e
  25.                 // get all the features with values
    : u# w; m& |( H4 q+ B  A
  26. 6 }# r- ~5 X- F% G* u
  27.                 std::vector <Features::Feature *> nodeFeatures = getfeatures();" }; E+ B% k; M/ O
  28.                 // insert the features3 n+ A, \: K8 z) i/ w# A
  29.                 for(int i = 0 ; i < nodeFeatures.size();++i)
    : O8 f7 ?  T% g1 h
  30.                 {" ]& c& v2 |2 E; d9 A
  31.                         Node *featureNode = tree_control0->CreateNode(nodeFeatures[i]->GetFeatureName());! C5 K  O% ?8 ^  ~
  32.                         tree_control0->InsertNode(featureNode,modelhistoryNode,NULL,Tree::NodeInsertOptionLast);
    2 H1 E4 Z- A5 S: O. c3 I
  33.                         - P2 Z$ K* O( t. m- w  C
  34.                         featureNode->SetColumnDisplayText(1,        nodeFeatures[i]->FeatureType());
    + {: H6 B4 I) m# k. T
  35.                         featureNode->SetColumnDisplayText(2,"check");, c; \5 f9 \' h- a5 V' M
  36. 8 `/ U1 q9 o' q- P, Y+ f8 e
  37.                 }' ?) u* Y* B  M0 i/ ~9 e
  38.         
    4 O4 A# H2 ^! S% M
  39. $ q" E* j7 ]9 g/ B  e
  40.     }* M6 I$ Y) g; V, m, _: ^
  41.     catch(exception& ex)
    & E/ \, k$ K5 H! A- E+ X
  42.     {
    . q  T- f2 y. d: j* J# a/ p; b- s
  43.         //---- Enter your exception handling code here -----
    / f( D) ~2 U; W+ @/ F
  44.         tree::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());" u9 U% t  H, d
  45.     }
    0 J% f: l  Z9 F, f6 ]$ W: c
  46. }
    / B' C2 F, Q, b7 m; M4 `6 a* Y
复制代码

5 i! ]  g& g9 k& g2 u3 P. t& I) C7 V( i
treelist的创建,需要在dialogShown_cb()里面定义treelist的内容
2 p8 T. }  y, i4 v, ^  H8 J( n& |& Q- e
首先通过InsertColumn 定义列,有了列才能创建节点Node0 K) Z8 Q) M7 q/ [, M6 F/ E5 O
5 z9 @5 s& Z' S+ s3 Y
这个顺序非常重要!
. B& j7 o3 j( l6 h/ s' }5 H7 F9 P4 W; F6 V4 S+ \  D' v

treelist 树控件创建

treelist 树控件创建

9 `3 \9 d1 }% c
8 _# ~4 {; @) z' Y( T7 M) Z6 c
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了