PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

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

admin 楼主

2014-2-12 19:13:34

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

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

x
  1. void tree::dialogShown_cb()" U) I/ O% n9 Y# l
  2. {
    ! s' p. ^! M5 ~- T8 v
  3.     try
    0 X% n! G/ T  v* G- P# m: \
  4.     {7 l. J( {9 d4 I; K% g
  5.         //---- Enter your callback code here -----
    4 S) c: W& S& G% }) v/ {8 ]$ T
  6. 0 R" g. o4 K; ~
  7.                                 
    $ ^7 Y5 `+ O$ Z" l$ A: g0 K
  8.                 tree_control0->InserTColumn(0,"Name",140);. H6 J& j$ {/ c, `
  9.                 tree_control0->InsertColumn(1,"Feature Type",90);/ B& r: x+ s3 \; k; Q9 ]
  10.             tree_control0->InsertColumn(2," Up to Date",70);- v3 U% y% Q: e/ l7 C1 r6 ^% |

  11. . C/ B8 g" U8 F$ m$ G
  12.                 tree_control0->SetColumnResizePolicy(0,Tree::ColumnResizePolicyConstantWidth);0 K, Y) W$ @+ D2 Z
  13.                 tree_control0->SetColumnResizePolicy(1,Tree::ColumnResizePolicyConstantWidth);
    4 S; \/ i8 t% X) J
  14.                 tree_control0->SetColumnResizePolicy(2,Tree::ColumnResizePolicyConstantWidth);: V8 T" L( A& f( O* d& U. O

  15. + f+ \+ w9 F* E" s6 W0 l
  16.                 tree_control0->SetColumnDisplayType(2,Tree::ColumnDisplayIcon);
    ( T# D2 f0 l, \) F* o% c
  17. 8 m) Z9 G  y# B) x& N
  18.                 // create historymode
    0 M  g9 c2 t! G( T! j
  19.                 historyModeNode = createInsertParentNode(this->tree_control0,"History Mode" ,NULL,nodeIcons[0],nodeIcons[0],Tree::NodeInsertOptionAlwaysFirst);/ D- b# f8 O* F+ U9 {  w
  20.                 viewNode = createInsertParentNode(this->tree_control0,"Model Views" ,historyModeNode,nodeIcons[1],nodeIcons[1],Tree::NodeInsertOptionLast);, [9 G% O7 ~: V9 u$ J
  21.                 camerasNode = createInsertParentNode(this->tree_control0,"Cameras" ,viewNode,nodeIcons[2],nodeIcons[2],Tree::NodeInsertOptionLast);
    . w, k) H; x" _4 c! F
  22.                 modelhistoryNode = createInsertParentNode(this->tree_control0,"Model History" ,camerasNode,nodeIcons[3],nodeIcons[3],Tree::NodeInsertOptionAlwaysLast);
    $ w8 q, C+ |) P! V. H- ^- o( J
  23.                 tree_control0->SetSortRootNodes(false);9 o4 G& t$ q- F. ]2 r
  24.                 modelhistoryNode->Expand(Node::ExpandOptionExpand);
      |/ t  ~; y( \% I# @
  25.                 // get all the features with values 3 s& e( N" N% z
  26. 7 D7 B( i, J9 B1 X# `( T" H
  27.                 std::vector <Features::Feature *> nodeFeatures = getfeatures();
    - r* j- Y, w7 `
  28.                 // insert the features. r6 O5 ~+ a: y  h3 g, |
  29.                 for(int i = 0 ; i < nodeFeatures.size();++i)
    + S* [2 s" K3 g5 q
  30.                 {
    2 z$ {, e2 U5 {7 F8 D# _7 j. K9 j) q
  31.                         Node *featureNode = tree_control0->CreateNode(nodeFeatures[i]->GetFeatureName());8 p/ s: Q( }& b3 K$ G/ q" `' ~4 D$ K; s
  32.                         tree_control0->InsertNode(featureNode,modelhistoryNode,NULL,Tree::NodeInsertOptionLast);9 b* M8 h) i. A2 V
  33.                         " W% y' Y1 L$ ~3 `- Q% P
  34.                         featureNode->SetColumnDisplayText(1,        nodeFeatures[i]->FeatureType());+ I; W& q) Q' ?9 p+ K' s9 t
  35.                         featureNode->SetColumnDisplayText(2,"check");
    & Y7 x' Y4 o0 w4 s: E" W

  36. / Y0 H" n- u& I0 r6 g2 |
  37.                 }
    ( V1 |1 }5 n# e4 w0 o4 r& W& f
  38.         6 [: w2 A4 I* {7 S

  39. " |& W" u2 N$ A8 _
  40.     }
    : q: m4 E% V- S1 w( S1 \
  41.     catch(exception& ex)
    * c  u. f: z! x/ a
  42.     {
    . M' t1 [9 I9 Z) Y
  43.         //---- Enter your exception handling code here -----) G/ \' g  b8 [
  44.         tree::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());+ ]2 x1 J) y4 X! z6 u$ ~
  45.     }2 @8 Z$ ~1 e# e  S6 W
  46. }0 @4 v: n  r& X" d  v1 N/ X
复制代码
. p8 b2 J9 R5 \( H! |1 }
( `$ q0 y7 t% `6 E% i
treelist的创建,需要在dialogShown_cb()里面定义treelist的内容
+ O  c2 H) X  c- b+ C9 `, Q  b2 @% F) u% p; q
首先通过InsertColumn 定义列,有了列才能创建节点Node
8 F; g' I. K7 x4 N! s2 _5 X! H7 R
这个顺序非常重要!  l# [4 z( F$ [$ M, m2 j  G
" T; _. C7 a# i$ N2 N0 {8 v7 y) |

treelist 树控件创建

treelist 树控件创建

( C  f9 M( j" c3 ^9 e
( L0 w8 ^; y  y3 K% y% l
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了