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 7095 0

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

admin 楼主

2014-2-12 19:13:34

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

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

x
  1. void tree::dialogShown_cb()# {1 p3 I. K/ @4 X
  2. {& Q$ Z% h$ B+ }& \& v5 z
  3.     try
    : m7 Q8 `! d. W$ C5 c6 P
  4.     {1 ]( Q) Z2 s/ b; r0 p1 r& R
  5.         //---- Enter your callback code here -----' K3 P4 c+ ?4 t7 v" d, b1 {& T1 j$ O

  6. 6 p7 |6 }- e* i. i
  7.                                 
    ) k4 d; d+ d4 E% J
  8.                 tree_control0->InserTColumn(0,"Name",140);! |/ R: r$ O  V/ m5 f; b8 Z3 R
  9.                 tree_control0->InsertColumn(1,"Feature Type",90);1 ]$ ^0 E& O; c/ J# G
  10.             tree_control0->InsertColumn(2," Up to Date",70);) y4 ?0 ]3 |/ ?$ b" f/ u. `

  11. : G/ F2 a) y  b+ S& w
  12.                 tree_control0->SetColumnResizePolicy(0,Tree::ColumnResizePolicyConstantWidth);
    3 i- h1 z0 A: }0 H9 g3 U+ ~' T
  13.                 tree_control0->SetColumnResizePolicy(1,Tree::ColumnResizePolicyConstantWidth);
    5 l1 g; v( i6 F( j8 u$ ^8 s
  14.                 tree_control0->SetColumnResizePolicy(2,Tree::ColumnResizePolicyConstantWidth);, l1 i* c" Z& a$ }' ^7 O3 e) m
  15. 6 Q4 |# p3 n) f6 m( K; @
  16.                 tree_control0->SetColumnDisplayType(2,Tree::ColumnDisplayIcon);$ [- f8 o* D. R

  17. / t- U; E+ l7 z6 W
  18.                 // create historymode( c( P. N# T' e6 n: [5 n
  19.                 historyModeNode = createInsertParentNode(this->tree_control0,"History Mode" ,NULL,nodeIcons[0],nodeIcons[0],Tree::NodeInsertOptionAlwaysFirst);: A6 u0 Y; g/ S# J9 x$ s. _
  20.                 viewNode = createInsertParentNode(this->tree_control0,"Model Views" ,historyModeNode,nodeIcons[1],nodeIcons[1],Tree::NodeInsertOptionLast);) k$ M2 \" }% O7 l1 M
  21.                 camerasNode = createInsertParentNode(this->tree_control0,"Cameras" ,viewNode,nodeIcons[2],nodeIcons[2],Tree::NodeInsertOptionLast);
    / I5 Q6 s+ U9 r! H6 z
  22.                 modelhistoryNode = createInsertParentNode(this->tree_control0,"Model History" ,camerasNode,nodeIcons[3],nodeIcons[3],Tree::NodeInsertOptionAlwaysLast);8 e0 e. Q  Y5 `8 I% D) R
  23.                 tree_control0->SetSortRootNodes(false);) w6 O3 W/ |* D0 u4 e* L4 b: x& z
  24.                 modelhistoryNode->Expand(Node::ExpandOptionExpand);' b. H3 N" i/ e1 a& ^
  25.                 // get all the features with values ) o7 {) m* _8 G: M4 J4 `0 B# `

  26. ; ^  }7 T# p5 d; `
  27.                 std::vector <Features::Feature *> nodeFeatures = getfeatures();
    4 X. \: J( z- b2 _1 s/ C  L0 P
  28.                 // insert the features) L$ X+ @  J! l1 M1 S% b! [' H
  29.                 for(int i = 0 ; i < nodeFeatures.size();++i)0 g! }2 K  E5 V- v( g
  30.                 {
    ' o, ~* n, C5 K( \
  31.                         Node *featureNode = tree_control0->CreateNode(nodeFeatures[i]->GetFeatureName());
    8 D* W2 c4 m) K& M' z
  32.                         tree_control0->InsertNode(featureNode,modelhistoryNode,NULL,Tree::NodeInsertOptionLast);6 N% }6 D6 [  d7 `7 H9 m
  33.                         ! b1 [  v4 h5 x9 B4 f8 ]1 P$ T
  34.                         featureNode->SetColumnDisplayText(1,        nodeFeatures[i]->FeatureType());
    , I- i" N% I& b5 A
  35.                         featureNode->SetColumnDisplayText(2,"check");
    ; R4 h5 ~4 S* q: r0 h& E; \
  36. - R# |" c$ x* V$ r7 @8 b
  37.                 }
    9 I7 R( b6 q# p8 n4 g1 b* z
  38.         ; ~$ F9 h" m) u6 O8 `

  39. # l7 Z0 N& y/ N$ m+ S1 B5 o( Q
  40.     }
    , K: ~" W3 \* n: B6 {* p$ r7 ^% Y& x" @
  41.     catch(exception& ex)- B$ F. |1 n8 u) m, H* k5 N
  42.     {
    9 b! y8 ?/ [- _/ n- k5 M
  43.         //---- Enter your exception handling code here -----
    3 B# U' z' f+ T, ^
  44.         tree::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());- W: C$ e2 k: E) y. X
  45.     }
    9 }- s- x8 e3 ~8 B; O7 m
  46. }. M$ Z% M/ @1 G8 w: Z2 h' ?
复制代码
3 c9 F2 c2 d# y5 V! M

* |* v0 l0 Q& C1 S1 p% Rtreelist的创建,需要在dialogShown_cb()里面定义treelist的内容
- V0 o2 z! A$ j1 C6 ^- v) U/ k6 R$ I2 B1 O: i7 s0 A! r
首先通过InsertColumn 定义列,有了列才能创建节点Node
9 k& d! f# F1 W( x' m1 P0 ?: d8 S. `! H) L
这个顺序非常重要!( ?( {6 O/ n7 W, F( g

2 k0 y- F0 `: C, u3 w

treelist 树控件创建

treelist 树控件创建
0 d. L7 n1 `' W
; G# j% n9 h( L( p! N& {8 R6 }
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了