查看: 5304|回复: 0

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

[复制链接]

4

主题

3

回帖

44

积分

管理员

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

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

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

×
# u  [$ h! p8 p# m; g' U
简单说说顺序和注意事项:! M) p7 b1 o+ K

* W/ {/ O- ]3 {  s! [- X

5 v, I9 m4 y+ ?4 a4 m( k  P8 V' q(1) 先插入columns,也就是先创建列,创建的时候,不要放在initialize_cb()回调函数内,要放在dialogShown_cb()内。 9 l. N& [( I- j9 f. l
创建Columns比较简单,直接搞:
! K- {5 P4 N) m
//Insert Columns        
& X* m- a& ~/ c8 o5 V* Q        tree_control0->InserTColumn(ColumnFirst, "First Column", 80);4 K' S( B+ Y; N8 W
        tree_control0->InsertColumn(ColumnSecond, "Second Column", 80);! ~' l( _6 d1 Q3 q% B) r
        tree_control0->InsertColumn(ColumnThird, "Third Column", 80);( m  I6 C* v( ]7 U2 n4 g0 @
! ?- \9 A8 m2 q3 f8 H

$ ?% U$ \! ^% o7 R$ H% ]// 关于列的序号,最好定义一个枚举类型,方便使用
% a/ L* Q! ]0 a' e9 |* k* H; m' F0 e
8 x' a: @7 ?( z; b2 u$ |4 X" q8 |6 t
        //Set resize policy for columns  -- 要不要无所谓* v6 ]* C" j3 X" M+ _) P
        tree_control0->SetColumnResizePolicy(ColumnFirst, Tree::ColumnResizePolicyConstantWidth);6 Y9 j- K& `; ~2 Q% `1 _
        tree_control0->SetColumnResizePolicy(ColumnSecond, Tree::ColumnResizePolicyConstantWidth);
0 ]% u! }$ X0 L6 k. |- L( D        tree_control0->SetColumnResizePolicy(ColumnThird, Tree::ColumnResizePolicyConstantWidth);; t5 @- p) o5 ^, `" t! J
# {6 B1 A: @$ |- K$ g5 e, c* Q

4 Q3 {' Z  n; U1 d6 P        //Let the second column interpret the text as icon  //是不是显示图标在列的前面
( f% G4 M4 m: Z
% ?( x* \( b. W9 ?% r
' L; I0 k  B# N! R$ _+ v
        tree_control0->SetColumnDisplayType(ColumnSecond, Tree::ColumnDisplayIcon);        % a/ O6 y7 w$ K8 h
* D$ d: d8 |& s% I1 Z7 f0 a
; o9 r8 A, B- o. d
(2)创建Node,一般情况下根据控件按钮添加,当然如果你想一开始对话框就显示所有的node,那么还是在
dialogShown_cb()继续写。3 W8 `* \! h. b; Q

" k, b1 I+ i( \

- h5 H  L( G0 W5 g; Q2 F1 I9 b9 FNode的创建,基本就是先创建再插入。
/ P8 G0 E, \+ ~! U, {! h/ x: f; E! _: ], k
! ]/ }+ t& d$ [, m" j) b$ R+ S( {
BlockStyler::Node *node = tree_control0->CreateNode(“plmhome”); //创建5 i) J9 |1 y% l6 a7 }) |) C
tree_control0->InsertNode(node,parentNode,afterNode,tree_control0->NodeInsertOptionSort); //插入, R5 J" Q6 M( T
//如果没有ParentNode和afterNode 就全部设为 NULL; D( k6 ~0 W+ N* K$ S4 C
/ A5 R" @% k4 C7 i" U# m2 K' V
( E: I' z4 V1 d- g/ K: m4 v# Y6 r+ k
基本就ok了!
8 R6 E/ s4 P: p8 V* y! g$ y
' `  ?' t& M% g1 L$ p

9 A. C1 z+ h2 d: D# n+ z) Q) _9 j(3) 如果要对对应的列添加值,那就是通过设置 节点的显示内容
8 B) Z1 F# _1 S/ w3 z% _9 U
3 G5 N, Q- x; I5 h' p) F
) T" K: p# X  W! `
Node->SetColumnDisplayText(Column2,"plmhomedisplay");     
! ?4 A9 ?" v; y5 r% Z* g% H" F0 D; p# X# A& x4 F# ]
/ I2 B1 F, m5 J7 t( x# S* a" C
' c7 _% n/ ?5 n

: c5 z6 K' v1 M  a* a8 q2 u. O9 C5 H

, S( Q+ ]. a" ?* _8 w
  _$ D* {/ D! A
; ~5 P9 v% i% o1 t9 S4 Q: w6 @* V8 D. o
6 J; o1 B. O" n. Y" a
2 ~& \- ]2 ~, l8 f  \* S  x) Y# k8 D* G
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

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

本版积分规则

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