查看: 5540|回复: 0

[二次开发源码] UG NX二次开发源码分享:创建树列表UI 界面功能技巧

[复制链接]

2477

主题

1280

回帖

60

积分

管理员

PLM之家站长

积分
60
QQ
发表于 2014-11-10 14:57:33 | 显示全部楼层 |阅读模式

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

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

×

/ E0 H  A. C' l/ v$ P简单说说顺序和注意事项:
' J0 X1 z! Z6 j7 s) v6 j6 L) K
7 i) l- S( R" c: q
3 c1 s3 F* E# r8 f1 s
(1) 先插入columns,也就是先创建列,创建的时候,不要放在initialize_cb()回调函数内,要放在dialogShown_cb()内。 : Q# }. W' X& [! P- }$ [6 i
创建Columns比较简单,直接搞:
+ T( H- W  ^9 K+ m/ u
//Insert Columns        
/ n0 H. I4 ~- \$ G" p3 N, Y8 V        tree_control0->InserTColumn(ColumnFirst, "First Column", 80);
9 N- X8 S$ U% i4 [$ t. c- M        tree_control0->InsertColumn(ColumnSecond, "Second Column", 80);
! H) ~$ S# z; [        tree_control0->InsertColumn(ColumnThird, "Third Column", 80);
( X; b; U3 _( K3 p! k) a5 t9 o9 N1 ?3 R' `# G. E3 n4 p* B( {9 }
, X6 a4 i; o# k4 P
// 关于列的序号,最好定义一个枚举类型,方便使用
: n) j% b5 @* _2 y/ A) {0 P; k" _! I7 t% P: g& p1 @2 V: C
- O* `# W0 o+ |2 U. X
        //Set resize policy for columns  -- 要不要无所谓) l) U) J+ ]  ]4 s7 U- ?, n% f
        tree_control0->SetColumnResizePolicy(ColumnFirst, Tree::ColumnResizePolicyConstantWidth);) B+ Z2 G7 p( Z3 a6 M( H6 C
        tree_control0->SetColumnResizePolicy(ColumnSecond, Tree::ColumnResizePolicyConstantWidth);
1 ^0 Y/ R0 F. `0 R5 {        tree_control0->SetColumnResizePolicy(ColumnThird, Tree::ColumnResizePolicyConstantWidth);) ~4 m* F- E, h1 d. `

! ?4 N8 E- G) w

, j, m: @  J" j, B; I% t        //Let the second column interpret the text as icon  //是不是显示图标在列的前面
9 G2 m. ]( I' A/ `/ b. c* H% Y' E; ]; u. h+ U

% J+ w2 M6 u/ h2 j( v3 Z3 m3 }* u        tree_control0->SetColumnDisplayType(ColumnSecond, Tree::ColumnDisplayIcon);        
1 J4 s8 \7 Z5 l& B3 P" b
; i, ^% k! E3 r) E- t" S5 z" O
/ G% b; t: Z" K8 A( d(2)创建Node,一般情况下根据控件按钮添加,当然如果你想一开始对话框就显示所有的node,那么还是在
dialogShown_cb()继续写。
; R! b/ x+ N1 e! ^+ M9 j8 X3 \+ y4 j+ n' r' Q8 C" d# L& P
- O5 F" D" l4 e" A. R) w
Node的创建,基本就是先创建再插入。
/ Z5 M+ n  a9 I2 d# }/ ^2 N3 H: e5 F3 y

, _7 P# |" l; A& M9 YBlockStyler::Node *node = tree_control0->CreateNode(“plmhome”); //创建2 y  Q0 d2 h7 t8 C; ~
tree_control0->InsertNode(node,parentNode,afterNode,tree_control0->NodeInsertOptionSort); //插入: Z+ S5 }6 \$ o9 M9 y* i* ^
//如果没有ParentNode和afterNode 就全部设为 NULL
* S" |) g/ ?8 Z$ S" \0 m' A0 F0 R* m, N( D2 X
- L& n" [0 v. z, F7 @2 ]
基本就ok了!& j6 k: b+ J! F/ ]

7 y8 |+ Q* K0 b' G0 V) n

; B+ m  l* C) j; b0 W) d/ q(3) 如果要对对应的列添加值,那就是通过设置 节点的显示内容: V# r' s% ~4 u9 Y

2 S' y1 ?) K8 n: L
8 o2 H+ C4 [8 K4 O& V
Node->SetColumnDisplayText(Column2,"plmhomedisplay");     4 f! F! x8 ?( w) R2 I: U

! l2 y" [, Y) W& h- G4 J" s; Y
+ i% C9 @6 o. v. D' r/ B
- m. I. ]" s! b( p) `! I# x/ ?5 t: G8 p
0 b# C( S5 h: j* f

6 y& n6 x0 ~2 L2 Y% {( t
8 P) r% d! Q: `# ^

( ^( G( l- C4 S9 D
9 y9 P- f5 a4 g6 c- d; }$ }/ y
9 m! Q( f1 H. J4 n; U
" R" e; s! P, p0 @
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

在本版发帖
关注公众号
QQ客服返回顶部