PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82162
QQ
发表于 2014-2-12 19:13:34 | 显示全部楼层 |阅读模式

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

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

x
  1. void tree::dialogShown_cb(). [; H- Y6 q9 v3 t# t2 p+ }
  2. {
    ! i! }$ q- r1 f
  3.     try: U0 U5 \1 Q4 @6 e: Y; l
  4.     {
    # P4 `6 Y$ \2 f0 u
  5.         //---- Enter your callback code here -----. K/ S4 V, ^. l0 r4 f8 v
  6. : n3 C- E* {9 u4 G' w2 Q
  7.                                 
    ' E3 z( K. l$ O: b+ X
  8.                 tree_control0->InserTColumn(0,"Name",140);
    " S. w. z/ [* c# C2 {
  9.                 tree_control0->InsertColumn(1,"Feature Type",90);+ f+ }  [) V* q6 u/ {; [
  10.             tree_control0->InsertColumn(2," Up to Date",70);
    # \% g1 @" P( R3 s) K; Q) o: @

  11. 2 s; q5 w1 K. x/ l  E9 ~/ `
  12.                 tree_control0->SetColumnResizePolicy(0,Tree::ColumnResizePolicyConstantWidth);* d! ?# I9 f! D. ?7 g
  13.                 tree_control0->SetColumnResizePolicy(1,Tree::ColumnResizePolicyConstantWidth);' M( j3 [) J: g7 ~5 @$ Y5 |0 X
  14.                 tree_control0->SetColumnResizePolicy(2,Tree::ColumnResizePolicyConstantWidth);
    7 C, p2 H9 ?9 x# Q

  15. $ B6 t- H) ~. @2 [1 d+ j- m1 d
  16.                 tree_control0->SetColumnDisplayType(2,Tree::ColumnDisplayIcon);% |. W( `( G% @- ^& ]

  17. 6 j$ F5 I$ O; T8 ~1 R1 j* }
  18.                 // create historymode
    ' ^! c% R' a2 ~+ ]0 F
  19.                 historyModeNode = createInsertParentNode(this->tree_control0,"History Mode" ,NULL,nodeIcons[0],nodeIcons[0],Tree::NodeInsertOptionAlwaysFirst);  U+ d$ K" ]: a  z  Z+ _" d" P
  20.                 viewNode = createInsertParentNode(this->tree_control0,"Model Views" ,historyModeNode,nodeIcons[1],nodeIcons[1],Tree::NodeInsertOptionLast);# a3 I- \8 x6 d8 o" W5 Z% A
  21.                 camerasNode = createInsertParentNode(this->tree_control0,"Cameras" ,viewNode,nodeIcons[2],nodeIcons[2],Tree::NodeInsertOptionLast);
    & {, w" a2 X7 S& Z, a
  22.                 modelhistoryNode = createInsertParentNode(this->tree_control0,"Model History" ,camerasNode,nodeIcons[3],nodeIcons[3],Tree::NodeInsertOptionAlwaysLast);" Q' v8 w% {6 @9 s8 z
  23.                 tree_control0->SetSortRootNodes(false);/ Y- `) l# K1 Q) ^
  24.                 modelhistoryNode->Expand(Node::ExpandOptionExpand);1 r3 X# Y8 r9 }4 y$ G% f9 j
  25.                 // get all the features with values ( u* I5 m; G6 ]- y# s

  26. + v; ]5 D" Z. O0 r. H' p
  27.                 std::vector <Features::Feature *> nodeFeatures = getfeatures();
    & l/ z4 M& l4 w- Y* P' B
  28.                 // insert the features
    6 ~1 x+ D& E' t1 o
  29.                 for(int i = 0 ; i < nodeFeatures.size();++i)
    . _. ]6 d% N7 R- B0 m
  30.                 {+ u  L& S7 p( _9 m/ c* G
  31.                         Node *featureNode = tree_control0->CreateNode(nodeFeatures[i]->GetFeatureName());
    5 I1 p$ @* x  m
  32.                         tree_control0->InsertNode(featureNode,modelhistoryNode,NULL,Tree::NodeInsertOptionLast);
    1 B( @1 e* p0 T% V) N, z
  33.                         
    . J, h+ C) u. @* z$ h
  34.                         featureNode->SetColumnDisplayText(1,        nodeFeatures[i]->FeatureType());2 `6 B) z8 ?3 P& \1 H
  35.                         featureNode->SetColumnDisplayText(2,"check");
    & M, o; |- d2 Z3 W4 u- @' e

  36. : I6 X9 ]0 {' `+ R: h
  37.                 }
    7 h; i5 o/ _# j& n5 W
  38.         
    5 X& d9 a( J, X) x2 s! \% C& F1 O

  39. 0 x% u; v' a6 y6 P
  40.     }8 P3 T) y7 _! g* V2 ^
  41.     catch(exception& ex), R6 m1 @% ^2 F2 p0 j. s- C
  42.     {# x0 j9 Z/ `2 m9 G# K6 |% z
  43.         //---- Enter your exception handling code here -----
    5 B3 a; g* i5 U! S! Y& p3 h
  44.         tree::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
    ' A' k) |" }+ t9 \! C% H" n
  45.     }& M6 e, v: R, L! g$ S1 O5 x, t' e
  46. }
    4 s( m# F3 k* }% A
复制代码
. w+ U2 F7 \, V6 d' |0 R5 H
7 E; |8 a& e8 y) ]6 X8 x
treelist的创建,需要在dialogShown_cb()里面定义treelist的内容
$ p4 e+ h- A; R+ e) j/ x" Q2 Z. l% a0 m
首先通过InsertColumn 定义列,有了列才能创建节点Node
% Z% L, W1 ~$ J" S' O" L) n* i% @
1 v7 o8 B, ?( h+ _2 i$ C$ `  o1 J这个顺序非常重要!
# e% I* s. b( l; `" H" h- x
  y, Z* h! W- f( n' E! \

treelist 树控件创建

treelist 树控件创建

+ B: u6 J* W1 y0 w
2 ?/ K! _  g2 P. T
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了