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

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

admin 楼主

2014-2-12 19:13:34

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

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

x
  1. void tree::dialogShown_cb()
    * Q( A* T$ m& U# h' Y
  2. {" ^2 c! n) u5 o8 ~! b
  3.     try
    $ H. I5 ~' ^( h- d, ]  f  t$ h. r
  4.     {% q6 Q. ~1 F9 J) Q& h
  5.         //---- Enter your callback code here -----
    : E" Z) L- a: z$ X8 O

  6. 7 w& ]! B% S3 R* L% D, d9 R% t
  7.                                 6 U4 C$ ~' ~& z3 {/ K
  8.                 tree_control0->InserTColumn(0,"Name",140);& W( |  A" ^5 H9 `' U# k8 I
  9.                 tree_control0->InsertColumn(1,"Feature Type",90);
    5 d( S1 U  i4 k$ g: v; P0 [
  10.             tree_control0->InsertColumn(2," Up to Date",70);
    * N5 U1 T6 H: U2 Z% `4 M# o4 @$ p

  11. ! m7 w* X6 R' a8 \6 l' c6 g
  12.                 tree_control0->SetColumnResizePolicy(0,Tree::ColumnResizePolicyConstantWidth);
    - r2 h! d1 W- v' P3 ^1 \1 w
  13.                 tree_control0->SetColumnResizePolicy(1,Tree::ColumnResizePolicyConstantWidth);( W% o/ V- T. K, I0 ^6 z; y
  14.                 tree_control0->SetColumnResizePolicy(2,Tree::ColumnResizePolicyConstantWidth);
    % j% [( I* T1 q/ J# O6 L$ ~0 c- K) [
  15. # V3 L5 ^# S  Q" O, i
  16.                 tree_control0->SetColumnDisplayType(2,Tree::ColumnDisplayIcon);- U; z4 S7 j) h) f! K: g! {

  17. 7 w9 w4 B1 o0 F+ ^
  18.                 // create historymode
    6 S4 L% ?! p( z' ^2 [& [
  19.                 historyModeNode = createInsertParentNode(this->tree_control0,"History Mode" ,NULL,nodeIcons[0],nodeIcons[0],Tree::NodeInsertOptionAlwaysFirst);# o" z6 {' L* U$ K+ \1 v8 M
  20.                 viewNode = createInsertParentNode(this->tree_control0,"Model Views" ,historyModeNode,nodeIcons[1],nodeIcons[1],Tree::NodeInsertOptionLast);  D5 I8 a. b4 t$ [6 W  v) ^
  21.                 camerasNode = createInsertParentNode(this->tree_control0,"Cameras" ,viewNode,nodeIcons[2],nodeIcons[2],Tree::NodeInsertOptionLast);5 b* o) ^( O" I" y' z8 Y' L
  22.                 modelhistoryNode = createInsertParentNode(this->tree_control0,"Model History" ,camerasNode,nodeIcons[3],nodeIcons[3],Tree::NodeInsertOptionAlwaysLast);* _5 I5 h7 U/ Y3 K
  23.                 tree_control0->SetSortRootNodes(false);& |1 w0 Y8 V4 Q% T8 j2 ]& v0 Y& ^! b
  24.                 modelhistoryNode->Expand(Node::ExpandOptionExpand);
    + e1 C+ W. U4 C6 K1 P' H% S9 d, p
  25.                 // get all the features with values 4 e. F- t5 i* x, V1 J6 `" d

  26. 3 _2 q% }% V2 f" y0 w8 a
  27.                 std::vector <Features::Feature *> nodeFeatures = getfeatures();
    7 o# m, n$ k8 k+ f* [  o
  28.                 // insert the features
    & X% C) j; r# [6 n: K; c
  29.                 for(int i = 0 ; i < nodeFeatures.size();++i)  n& k$ }, c) [0 o  T1 R9 Y
  30.                 {
    5 h( S+ k; M4 ^* Q' s; _7 l
  31.                         Node *featureNode = tree_control0->CreateNode(nodeFeatures[i]->GetFeatureName());) D- {, c$ B9 D7 o( k
  32.                         tree_control0->InsertNode(featureNode,modelhistoryNode,NULL,Tree::NodeInsertOptionLast);
    ( f1 ^, n6 P0 C* d
  33.                         
    % v% J; o/ Q) e4 @8 j- i: M  C
  34.                         featureNode->SetColumnDisplayText(1,        nodeFeatures[i]->FeatureType());
    2 N. y$ D% N! s6 p9 X
  35.                         featureNode->SetColumnDisplayText(2,"check");
    4 M! T0 g% A9 T! o0 i8 I* b% ]* L* J

  36. , O/ k& `4 A. Q6 ?4 p* b
  37.                 }
    / d4 w$ U# A+ R: N: ^9 r" `
  38.         
    . Q8 h6 a. B+ `1 V, n
  39. 3 ~6 h& C( P* j5 m3 ^
  40.     }, ^5 e! P8 N, a0 H- Z; Z
  41.     catch(exception& ex)5 M7 a+ s- @) B# n& h: V
  42.     {
    4 e" \1 B/ F6 t; Z) p  c
  43.         //---- Enter your exception handling code here -----* M. J+ L" S8 T! `$ M( W4 }; H
  44.         tree::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());" f$ b# i' K: n; S
  45.     }- F/ a" }) O7 v  X) I
  46. }- m8 _8 V: Q3 w! K% N" {8 `0 T
复制代码
, B" R1 W. L( `4 `& p* C
1 A1 X% A& T4 @/ H9 Q
treelist的创建,需要在dialogShown_cb()里面定义treelist的内容& g& @3 S' q& R8 [9 ^/ P
7 |# n3 |) v6 ~& s, N
首先通过InsertColumn 定义列,有了列才能创建节点Node4 g! e9 l2 A% f- H8 T* p
. [2 V" x8 ]! p! z- }
这个顺序非常重要!
4 Q$ ~# B7 [$ ~+ Q, ~8 G" b5 q( l+ @9 _
, s" d. v, E% ~, W& B- N8 j

treelist 树控件创建

treelist 树控件创建
* C4 N0 a6 M5 w7 Z% |; r% e% e; o

8 s8 ~0 F! O3 {# p+ ~6 |
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了