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

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

[复制链接]

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

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

admin 楼主

2014-2-12 19:13:34

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

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

x
  1. void tree::dialogShown_cb()+ H0 B* V, e, D/ o3 ]
  2. {
    . ?% _0 B& e  A5 y9 L3 U. n' s5 H
  3.     try7 I, N7 c2 X# F; C/ M
  4.     {0 j/ g7 o; \3 O
  5.         //---- Enter your callback code here -----
    " M, ]! h+ @/ p9 `. J' Y
  6. " f& K; |1 _, j5 P8 V0 d# M. E$ H
  7.                                 
    8 [- Y& `3 W0 w: @! [8 @
  8.                 tree_control0->InserTColumn(0,"Name",140);, Z) i. n" k; h7 w
  9.                 tree_control0->InsertColumn(1,"Feature Type",90);* q4 S5 b. M5 z8 _3 P
  10.             tree_control0->InsertColumn(2," Up to Date",70);& T0 i2 O" r1 I
  11. % V; E. }* e9 ^1 ~8 x) ]# T
  12.                 tree_control0->SetColumnResizePolicy(0,Tree::ColumnResizePolicyConstantWidth);
    ) R) @/ [3 ]4 Z) [6 v
  13.                 tree_control0->SetColumnResizePolicy(1,Tree::ColumnResizePolicyConstantWidth);
    . v6 [' P1 k* _" N) {7 J' j5 E% w8 h
  14.                 tree_control0->SetColumnResizePolicy(2,Tree::ColumnResizePolicyConstantWidth);
    ( J4 v% ~$ k: L5 G1 |9 H3 R

  15. % e3 `& b# l  R+ f
  16.                 tree_control0->SetColumnDisplayType(2,Tree::ColumnDisplayIcon);- [$ P) E6 L/ q2 q' T2 |) x
  17. % z" l: n7 m) F5 j( P- ~: k
  18.                 // create historymode
    # p4 p7 ]. Y. }( _# m; l$ z
  19.                 historyModeNode = createInsertParentNode(this->tree_control0,"History Mode" ,NULL,nodeIcons[0],nodeIcons[0],Tree::NodeInsertOptionAlwaysFirst);0 w' L3 V7 a' V- ^5 `
  20.                 viewNode = createInsertParentNode(this->tree_control0,"Model Views" ,historyModeNode,nodeIcons[1],nodeIcons[1],Tree::NodeInsertOptionLast);# b6 G( `+ ~- `( n) b
  21.                 camerasNode = createInsertParentNode(this->tree_control0,"Cameras" ,viewNode,nodeIcons[2],nodeIcons[2],Tree::NodeInsertOptionLast);& P4 l, Z4 ^: a4 k
  22.                 modelhistoryNode = createInsertParentNode(this->tree_control0,"Model History" ,camerasNode,nodeIcons[3],nodeIcons[3],Tree::NodeInsertOptionAlwaysLast);
    3 `) N( g4 E" Y' p  Y8 r
  23.                 tree_control0->SetSortRootNodes(false);
    1 P9 P3 }) U. E9 V% |3 n
  24.                 modelhistoryNode->Expand(Node::ExpandOptionExpand);4 I5 h5 P( ]5 L: w, P% f* }
  25.                 // get all the features with values
    ) Z0 f' C1 k3 _
  26. 1 v$ W: [! n- H3 i$ M+ A! x$ u
  27.                 std::vector <Features::Feature *> nodeFeatures = getfeatures();
    4 @% o/ i" {& N
  28.                 // insert the features& ^9 h' ^! |/ y8 ~7 Y
  29.                 for(int i = 0 ; i < nodeFeatures.size();++i)! o& [" Q0 q, K: b- y% m
  30.                 {  h; M, s6 J% X  o! {
  31.                         Node *featureNode = tree_control0->CreateNode(nodeFeatures[i]->GetFeatureName());
      T0 o4 M2 M8 l7 B
  32.                         tree_control0->InsertNode(featureNode,modelhistoryNode,NULL,Tree::NodeInsertOptionLast);; l/ M/ P) X4 L1 Q$ r
  33.                         1 X8 t7 v( W$ W+ R
  34.                         featureNode->SetColumnDisplayText(1,        nodeFeatures[i]->FeatureType());! s; a9 |. H' v' j
  35.                         featureNode->SetColumnDisplayText(2,"check");
    . V$ q' f6 A$ `8 r5 e% R1 o& T
  36. ) L/ x7 I) A$ R0 h! b
  37.                 }& O7 m7 s9 M9 d$ k9 N
  38.         
    6 \3 P, C. Q3 M8 M

  39. . ?# v* u1 ~; H  p% [2 U
  40.     }
    5 u$ t$ P& w) p. S
  41.     catch(exception& ex)+ G  J6 T; J, Z$ h4 ]2 k, i
  42.     {7 Q3 ]$ d" |) k' o' x; Q
  43.         //---- Enter your exception handling code here -----
    " E. |: C/ C) E
  44.         tree::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
    ; u8 F+ |& P+ Q  L3 M0 v) c
  45.     }
    . J; ~4 r: n7 B) J9 s/ F0 @
  46. }0 s. y0 T8 L, L8 g  b# j
复制代码
$ B6 B6 U; n4 m+ j4 r$ T9 V
& N  a1 _' S3 `' B
treelist的创建,需要在dialogShown_cb()里面定义treelist的内容
( c- F- Q" t. Q6 O5 N- q1 A: M% X7 N3 P# i
首先通过InsertColumn 定义列,有了列才能创建节点Node
9 I7 F& u9 H: o1 l
  d9 [8 y4 s9 C6 f, l1 F% ]这个顺序非常重要!' P. A" @0 k3 S9 u

$ ]5 U' K) t9 e

treelist 树控件创建

treelist 树控件创建
  D* x! U6 e% i" t. `/ t

0 ?- P. N  |* Q  a) d8 K
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了