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

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

admin 楼主

2014-2-12 19:13:34

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

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

x
  1. void tree::dialogShown_cb()7 i$ [* E0 b" x! i
  2. {
    # V' ]1 V$ b; S4 K  t) K
  3.     try
    : z# r/ q+ q  a) X' _( V
  4.     {
    " J7 F7 ^9 C5 r4 C
  5.         //---- Enter your callback code here -----
    7 v# t5 d1 v! X1 a6 f5 j
  6. 2 p8 j; b. i5 m6 u6 H* j
  7.                                 
    6 [+ O% T) G7 }) W2 i
  8.                 tree_control0->InserTColumn(0,"Name",140);% w: H. J4 z& Q3 V' l( a! i
  9.                 tree_control0->InsertColumn(1,"Feature Type",90);
    + r: I2 h7 x) c: t7 x0 {1 X  s! |
  10.             tree_control0->InsertColumn(2," Up to Date",70);
    & L4 ^; [8 a6 T$ g' ?

  11. 8 I/ U4 p# B2 \5 t8 o0 f9 i, N
  12.                 tree_control0->SetColumnResizePolicy(0,Tree::ColumnResizePolicyConstantWidth);
    9 T1 r$ D' ~( e" h& m, r$ J, q1 h3 z
  13.                 tree_control0->SetColumnResizePolicy(1,Tree::ColumnResizePolicyConstantWidth);0 u, j% o# ^) t+ F0 \  ?
  14.                 tree_control0->SetColumnResizePolicy(2,Tree::ColumnResizePolicyConstantWidth);- m: k  W# ^, H2 L7 k0 r  o

  15. 8 B- v5 q( O/ |- {* b
  16.                 tree_control0->SetColumnDisplayType(2,Tree::ColumnDisplayIcon);8 g6 g, v3 W# q$ |
  17. 1 N* G5 f) z/ _2 h4 @3 I
  18.                 // create historymode
    5 L' m3 T5 T# a- E. E; m3 z8 J" m
  19.                 historyModeNode = createInsertParentNode(this->tree_control0,"History Mode" ,NULL,nodeIcons[0],nodeIcons[0],Tree::NodeInsertOptionAlwaysFirst);" t! \. K, N) z
  20.                 viewNode = createInsertParentNode(this->tree_control0,"Model Views" ,historyModeNode,nodeIcons[1],nodeIcons[1],Tree::NodeInsertOptionLast);
    * P) w! V* J5 C
  21.                 camerasNode = createInsertParentNode(this->tree_control0,"Cameras" ,viewNode,nodeIcons[2],nodeIcons[2],Tree::NodeInsertOptionLast);7 }8 }* U" r1 |/ D2 z2 W! W
  22.                 modelhistoryNode = createInsertParentNode(this->tree_control0,"Model History" ,camerasNode,nodeIcons[3],nodeIcons[3],Tree::NodeInsertOptionAlwaysLast);
    / @0 p! [! h" {
  23.                 tree_control0->SetSortRootNodes(false);, m( K3 G6 E2 |3 f. |( W6 x* ?
  24.                 modelhistoryNode->Expand(Node::ExpandOptionExpand);& G+ D, Q0 E& E
  25.                 // get all the features with values
    - c0 _' D+ a0 m$ N, `
  26. . \: l8 ]" \1 Z
  27.                 std::vector <Features::Feature *> nodeFeatures = getfeatures();3 E7 E* H7 i9 ~" A# _- G
  28.                 // insert the features9 ^1 Y, |' a( p6 z) Y5 f! Q
  29.                 for(int i = 0 ; i < nodeFeatures.size();++i): ?' H6 I+ D" f# {- v4 M8 b- z' a
  30.                 {! w& w& e" u# s! y$ L' l% y) ~  Q
  31.                         Node *featureNode = tree_control0->CreateNode(nodeFeatures[i]->GetFeatureName());
    9 b( X! S' Q6 M0 j5 o
  32.                         tree_control0->InsertNode(featureNode,modelhistoryNode,NULL,Tree::NodeInsertOptionLast);% z. I* z- W* E- ?( n% }" Q9 D: o
  33.                         5 ]' u5 f. y! {
  34.                         featureNode->SetColumnDisplayText(1,        nodeFeatures[i]->FeatureType());- U" X& c7 _" F  w. Z
  35.                         featureNode->SetColumnDisplayText(2,"check");
    # T# \+ h$ W' Q  r+ v+ |* I9 M

  36. / H4 @- y* |9 X
  37.                 }
    1 k- ^9 J. C& e; r& y3 x: k
  38.         1 q3 b6 A$ _. z6 i

  39. 7 `0 J8 D! G+ G
  40.     }
    ( N$ I' @9 O: N9 Y' Z% k
  41.     catch(exception& ex)
    9 A1 r! y3 L5 ^3 \8 {8 H2 N# j
  42.     {
    " r: c" C. e, U% N0 s
  43.         //---- Enter your exception handling code here -----( V' ^* J7 B4 r# r
  44.         tree::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());. J, T/ m/ J/ Z3 F7 C
  45.     }, {9 i. N8 m$ h. B
  46. }( D4 P! F3 r7 ?
复制代码
( G) s2 h7 y* b" o& D
6 o1 e3 Y% F/ D$ I5 T* b/ t; t+ p
treelist的创建,需要在dialogShown_cb()里面定义treelist的内容% Y" k4 v" a7 c4 w# j; h& z9 C

0 |* n5 Z3 K/ J首先通过InsertColumn 定义列,有了列才能创建节点Node
0 @1 s  T" V; n- N% u: K
: Q0 f3 Q) D! R6 K3 g, u: w; A这个顺序非常重要!1 S9 b1 H! H1 [* r
) N$ [: k- I7 i" P

treelist 树控件创建

treelist 树控件创建
+ ?) ?; k9 [/ n2 H1 _5 y. G9 m& E
8 S' M7 v; K6 A4 E6 g
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了