查看: 5590|回复: 0

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

[复制链接]

2477

主题

1280

回帖

8万

积分

管理员

PLM之家站长

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

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

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

×
1 y& L( |3 w5 N3 W
简单说说顺序和注意事项:
' A; g, j- T0 A* p" p, z& T& s: s3 v4 G" K" B# ?- \) S
1 z2 Y4 @  j, e9 T
(1) 先插入columns,也就是先创建列,创建的时候,不要放在initialize_cb()回调函数内,要放在dialogShown_cb()内。
! @* L3 W. B' {% ~: B0 {创建Columns比较简单,直接搞:
4 O. E4 w: O# m6 m5 [# F+ S
//Insert Columns          [- }6 q3 N9 a' @& D. U
        tree_control0->InserTColumn(ColumnFirst, "First Column", 80);
: S% S! D0 Y1 ^0 l% m2 f        tree_control0->InsertColumn(ColumnSecond, "Second Column", 80);
, S8 V9 G9 g: C        tree_control0->InsertColumn(ColumnThird, "Third Column", 80);
* N/ m) \+ d. S- E  k3 M
: G6 Q1 [! e: X: _$ w4 B8 u
* ]/ Z6 U  G  r
// 关于列的序号,最好定义一个枚举类型,方便使用
# o7 ]5 F) ?4 \7 x
/ k* A* X4 ^- H& h  M

/ z4 M6 X, x  R( N        //Set resize policy for columns  -- 要不要无所谓6 J1 W( m( h& z; _3 t1 Z0 t& ?+ E
        tree_control0->SetColumnResizePolicy(ColumnFirst, Tree::ColumnResizePolicyConstantWidth);
# X' w8 ]( h9 F& i6 j1 B6 d* ]0 H        tree_control0->SetColumnResizePolicy(ColumnSecond, Tree::ColumnResizePolicyConstantWidth);
( [1 ^# a2 ?5 X$ `* b. {        tree_control0->SetColumnResizePolicy(ColumnThird, Tree::ColumnResizePolicyConstantWidth);; [3 v1 T3 m7 B

9 n  b1 s- {1 A% I9 h- D+ S/ n
2 {7 E  f0 N4 z+ Z: h# @3 \9 p  r
        //Let the second column interpret the text as icon  //是不是显示图标在列的前面
. ^" t0 {# w% N# G3 ^2 ~+ @* V, V" o" E1 g8 y1 E

3 c2 `3 Z+ u- C  e( ]% b. b        tree_control0->SetColumnDisplayType(ColumnSecond, Tree::ColumnDisplayIcon);        " W" m! ?- g2 L1 [  `' X+ W
; Q7 S0 e2 y1 e8 ~5 ~: Z

# S6 `) O4 \* ^: a4 k: h(2)创建Node,一般情况下根据控件按钮添加,当然如果你想一开始对话框就显示所有的node,那么还是在
dialogShown_cb()继续写。
; B: R" k- A8 y( W: Y: Z5 E  U
/ z6 S# ?5 `. z# C% i& a1 e
Node的创建,基本就是先创建再插入。
5 f0 W! v! F/ z4 S, K
+ k- W; ?. r1 Q/ L' o0 n

  k# `/ g9 i: ]( FBlockStyler::Node *node = tree_control0->CreateNode(“plmhome”); //创建5 U" I- o8 r6 {) w. t
tree_control0->InsertNode(node,parentNode,afterNode,tree_control0->NodeInsertOptionSort); //插入
' ?& ]. R8 |$ o3 b% M- K" @$ T4 X4 u//如果没有ParentNode和afterNode 就全部设为 NULL
, h! t- N+ h5 w( H3 B
* t$ @4 p2 I. R" j
0 ?. e) R& P% r! P4 `/ L
基本就ok了!
% V; i+ @" ?0 ]  l  R. V
* t1 g+ J- d) [: g* w9 f

3 P0 p0 J- \3 }+ o2 P(3) 如果要对对应的列添加值,那就是通过设置 节点的显示内容
+ i- C: \5 b2 ], b, E) y9 Z
0 w7 o$ u% ?! x- i2 A4 y
" v9 a: q- p, m* W" V) Z
Node->SetColumnDisplayText(Column2,"plmhomedisplay");     & E- L' c+ B7 _0 D

. C0 Z4 }& h1 L. D3 o, u- q
  |5 x9 R! Y2 B3 f) b9 Y& O
8 k) ~; q  s9 B# K* d
+ I2 o4 _# Z$ i! j5 O/ K
6 V/ U  ?  H- k: `8 R2 B

, n- n; I) Y. v3 c4 S- `& _0 q, L6 x2 e- s9 d8 k% H# [* [
. P6 c" w( g. F% V3 M6 R: T) ]+ W8 S8 \

2 C8 R: b& W  L9 Y5 e7 V
5 I- z8 q3 O3 w* X! ]- ~  e
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

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

本版积分规则

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