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

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

[复制链接]

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

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

admin 楼主

2014-2-12 19:13:34

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

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

x
  1. void tree::dialogShown_cb()& Z+ f+ J) `1 d( e6 C  k
  2. {
    6 c4 F1 n$ l6 K* x5 z/ b0 o
  3.     try& M) P1 f. t3 O
  4.     {' A& ~" M  k, |6 B" d. B8 Z
  5.         //---- Enter your callback code here -----: N6 m; c4 V4 f2 w, }

  6. 9 k8 x1 W. G, F4 v3 V
  7.                                 
    8 s) Y, W5 d/ ]$ v+ I# O7 A# h7 c1 c
  8.                 tree_control0->InserTColumn(0,"Name",140);
    ; B- i3 `( ^$ h4 C
  9.                 tree_control0->InsertColumn(1,"Feature Type",90);
    : Z5 A  q# u1 p! D, F9 P$ F1 c
  10.             tree_control0->InsertColumn(2," Up to Date",70);' p* V+ p) d! S: I4 P/ X/ h( J
  11. ( F- q" r& |! O8 M/ y1 h
  12.                 tree_control0->SetColumnResizePolicy(0,Tree::ColumnResizePolicyConstantWidth);' S5 v# q1 @( E' J1 d. M; D
  13.                 tree_control0->SetColumnResizePolicy(1,Tree::ColumnResizePolicyConstantWidth);
    9 ^3 x- J. x, e% n" u
  14.                 tree_control0->SetColumnResizePolicy(2,Tree::ColumnResizePolicyConstantWidth);1 J' s0 e; R, i/ g; o4 a
  15. $ u5 O! `* N$ G" C- h9 ?; U
  16.                 tree_control0->SetColumnDisplayType(2,Tree::ColumnDisplayIcon);' m) r% X0 P8 X3 r& ^* e8 J
  17. 9 d+ R. S; V1 X% C
  18.                 // create historymode
    ) T8 s- u- Y) g/ V: F7 j
  19.                 historyModeNode = createInsertParentNode(this->tree_control0,"History Mode" ,NULL,nodeIcons[0],nodeIcons[0],Tree::NodeInsertOptionAlwaysFirst);
    ; t+ f8 v8 S& {7 g/ J
  20.                 viewNode = createInsertParentNode(this->tree_control0,"Model Views" ,historyModeNode,nodeIcons[1],nodeIcons[1],Tree::NodeInsertOptionLast);- u5 c  K* e  X* _
  21.                 camerasNode = createInsertParentNode(this->tree_control0,"Cameras" ,viewNode,nodeIcons[2],nodeIcons[2],Tree::NodeInsertOptionLast);6 _  B7 A3 L9 }! l6 N
  22.                 modelhistoryNode = createInsertParentNode(this->tree_control0,"Model History" ,camerasNode,nodeIcons[3],nodeIcons[3],Tree::NodeInsertOptionAlwaysLast);! c2 r/ S+ S+ Z  O" y' [" w
  23.                 tree_control0->SetSortRootNodes(false);
    ( l. ~. |5 [. L, \' y) k
  24.                 modelhistoryNode->Expand(Node::ExpandOptionExpand);
    ( Y, p/ x; @5 A$ ^5 O" H! M: |! K
  25.                 // get all the features with values % G+ ^9 y5 v7 f% ?% }2 z# n

  26. 7 I2 C  c( v, g8 c& b
  27.                 std::vector <Features::Feature *> nodeFeatures = getfeatures();
    # v8 ~) c6 `% A  Y* B. L* W8 p
  28.                 // insert the features4 y( Y% F& y% H
  29.                 for(int i = 0 ; i < nodeFeatures.size();++i)
    3 i. K$ Y4 l' H1 x3 F, U1 A  g
  30.                 {
    4 I* l/ h) b* T. a* E6 v
  31.                         Node *featureNode = tree_control0->CreateNode(nodeFeatures[i]->GetFeatureName());# ~" l; d" F" i( C
  32.                         tree_control0->InsertNode(featureNode,modelhistoryNode,NULL,Tree::NodeInsertOptionLast);
    . B$ F) c% G& v0 t. H; q
  33.                         
    , ]3 h8 ]/ H: G) A
  34.                         featureNode->SetColumnDisplayText(1,        nodeFeatures[i]->FeatureType());
    % z$ f* }" Y; {1 i3 i
  35.                         featureNode->SetColumnDisplayText(2,"check");
    / N4 I2 b7 u9 Y) G: [& s/ h% b

  36. . Z7 u2 m& s- i  g2 h
  37.                 }
    1 r  F7 s  Z0 y% P
  38.         & t5 Y6 Y( `% ~) ~

  39. / m; Y, `% h' s3 u( q5 l
  40.     }4 M( J2 l0 S/ q" w4 A. k* h. ]
  41.     catch(exception& ex)
    & o+ z8 X2 u/ Z: ]" b2 c: K7 j/ J
  42.     {. u" n3 U1 [& D9 N! e( j
  43.         //---- Enter your exception handling code here -----
    / Y% r  |* a$ n& x9 K! q
  44.         tree::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());: f6 G: T* B/ b  p7 c* B; C
  45.     }
    3 k7 [; G4 r& n4 V9 W8 j3 f1 g+ C
  46. }0 Y- w1 n( O2 E
复制代码
0 a; U1 n" ^) h+ w( ^2 M

) M1 _; X$ i/ Etreelist的创建,需要在dialogShown_cb()里面定义treelist的内容6 a2 F4 T: P* K5 k8 h

8 s5 @6 j  Z2 @* l) o8 m0 l! P首先通过InsertColumn 定义列,有了列才能创建节点Node
4 x7 c$ F  T" c/ T7 `
9 ~) C: B6 M% p5 k! f这个顺序非常重要!3 T( |- J4 a; l! h4 G  H
/ H1 _6 L; ?# |" j' A; b

treelist 树控件创建

treelist 树控件创建
; f0 |8 N" \6 P4 A1 }

' Y- M6 k  W4 @
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了