PLM之家PLMHome-国产软件践行者

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

[复制链接]

2014-11-10 14:57:33 5085 0

admin 发表于 2014-11-10 14:57:33 |阅读模式

admin 楼主

2014-11-10 14:57:33

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

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

x
" ~0 @; u+ i+ ]! L# t$ H: \0 A8 U
简单说说顺序和注意事项:% u  b/ @- S( K3 i3 }: l$ U! b
) m: z9 R6 v' M7 [& m5 r
6 Z& j' L8 ~1 Q0 Q; K0 \% q
(1) 先插入columns,也就是先创建列,创建的时候,不要放在initialize_cb()回调函数内,要放在dialogShown_cb()内。 8 p! D1 e7 Y( ?" @  V+ u% G" e+ g
创建Columns比较简单,直接搞:  ^8 x' o1 l) n* I/ a9 M
//Insert Columns        ' w7 n  y% S" Z( k, M0 Q) L
        tree_control0->InserTColumn(ColumnFirst, "First Column", 80);
3 d0 ?7 J6 {; o        tree_control0->InsertColumn(ColumnSecond, "Second Column", 80);
/ d' {0 E, c% g5 l1 b        tree_control0->InsertColumn(ColumnThird, "Third Column", 80);
# L  e+ a% c9 C
- P& M2 ^# V& X7 \

- Z9 `& P' y9 {2 t! N2 ~3 a' h. p* J8 D// 关于列的序号,最好定义一个枚举类型,方便使用
- h4 Y7 L8 a6 ~# ]  R; R& @% Y# d9 _$ S1 {6 Q1 d  a) y9 [

1 Z. w- t! p6 d% }# w& X+ L$ X        //Set resize policy for columns  -- 要不要无所谓6 R6 U# Z; [& I/ E
        tree_control0->SetColumnResizePolicy(ColumnFirst, Tree::ColumnResizePolicyConstantWidth);
$ y* Z6 n4 C3 z( q4 [        tree_control0->SetColumnResizePolicy(ColumnSecond, Tree::ColumnResizePolicyConstantWidth);8 X; _! B. t; C# t& D
        tree_control0->SetColumnResizePolicy(ColumnThird, Tree::ColumnResizePolicyConstantWidth);9 R2 |0 V4 J( D5 v0 c. y* {+ p

  d% p4 B# K- Z9 I4 H- ]- t, C

) }0 D- i7 P4 O. N& n        //Let the second column interpret the text as icon  //是不是显示图标在列的前面. L! h" h) m  g3 b4 @6 C; g2 ]

" W& C! A, }/ I
" P2 L. Y/ I0 H: n" C' z: G4 V
        tree_control0->SetColumnDisplayType(ColumnSecond, Tree::ColumnDisplayIcon);        ; t0 _' v( t7 O* f
  e0 H5 ?" u4 P3 _9 m% C& g

( a9 P/ S) A7 e(2)创建Node,一般情况下根据控件按钮添加,当然如果你想一开始对话框就显示所有的node,那么还是在
dialogShown_cb()继续写。
. o+ W, H& K- S+ b! `
& j  Y( d. {4 g1 A# @: \5 L

/ y* n' }' ]3 J6 x3 e; ~Node的创建,基本就是先创建再插入。
; f% ^. a3 B1 X5 c3 H' j
. u/ ?* z. L8 j% a( G# B

7 f( l! p6 u) y- @7 ABlockStyler::Node *node = tree_control0->CreateNode(“plmhome”); //创建9 W5 ?3 d9 D7 I# c1 A
tree_control0->InsertNode(node,parentNode,afterNode,tree_control0->NodeInsertOptionSort); //插入
. ], n7 M6 s  ?! }7 o2 V//如果没有ParentNode和afterNode 就全部设为 NULL1 @! g% v2 |" i9 @- Q6 v6 Y* Q
+ a5 w6 M' B% b0 @! E5 [

5 D3 h( `( q4 r" b7 j基本就ok了!8 _, Y) v5 y! V* E' P/ T7 P# B/ _* p

2 N( W6 H+ F# a

8 L+ S. J# m" H( L2 q8 |) `(3) 如果要对对应的列添加值,那就是通过设置 节点的显示内容
  W4 x& U) E( }& B
; g+ v2 x: t8 m8 w. V$ U
# d9 p* V2 q8 q' j3 T! ]& B! X
Node->SetColumnDisplayText(Column2,"plmhomedisplay");     ' m7 a) S  w; J1 C4 I
5 G* B$ x$ q4 N2 V$ I

" n9 ?3 p, m% R1 N) Z  u
; S7 C5 H2 J  b9 V4 ~

' Q6 W& {7 ^; v3 S* e: V# O- N
& r7 r  g. q5 U7 p  w/ P
. a4 M4 I- ~0 k' E* x

0 {4 A9 V" l8 ~& w
! u0 x) ^" |: x0 K
4 }! G6 Y2 c) N8 e/ [0 v
! C' ?4 d( p$ U3 w, J; s
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了