PLM之家PLMHome-工业软件践行者

[二次开发源码] NX二次开发treelist控件添加右键快捷菜单回调函数的简单例子

[复制链接]

2014-2-12 19:10:15 5599 0

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82162
QQ
发表于 2014-2-12 19:10:15 | 显示全部楼层 |阅读模式

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

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

x
  1. <p><div class="blockcode"><blockquote>) R  s3 d7 X7 h
  2. 5 |) Y# a, A% _! d# ^

  3. 2 u$ U" P- ]. N4 ^& ?0 q
  4. enum MenuID3 u+ P, m- f1 I( l, j) s9 a
  5. {0 x5 s+ p- t) w, g$ B: {$ U! ^
  6. RemovetopNode = 0,
    ) }9 ?6 Q8 N& o6 @0 U8 G& }
  7. DeleteNode,0 r7 X( z, _7 P2 D
  8. CheckedMenuItem,* }5 q" K- t3 B. H2 _: [. _5 @
  9. DefaultMenuItem,
    4 s/ R6 E  n, r0 e& Y5 R
  10. DialogLaunchMenuItem,6 Q# r! J8 v0 x: D
  11. DisableMenuItem,+ `! e% h' d7 t) q4 `
  12. HiddenMenuItem,
      y8 m" f, ~0 X# `: d
  13. IconMenuItem,* w) d( Z6 x3 T3 e; f

  14. 3 a3 G; a, F3 P  n7 h! n
  15. SubMenuItem1,# `7 ?" y$ L3 e8 z3 T8 U  ~
  16. SubMenuItem2,1 E& {" Q2 t) G
  17. SubMenuItem3,/ p/ K/ I+ e/ O7 N8 H" V
  18. SubMenuItem4,. `0 j4 ^( T% \; J' ]* ?
  19. 0 P# y$ ?" L& v! u
  20.         historymenu,2 l' K$ z: q+ T
  21.         nohistorymenu,
    6 I1 B; R" S& Z  \# Z2 ?
  22. * F* R; a) A$ d1 T5 a% J' q4 O5 K! w
  23.         modelhistoryfilter,
    # @) g! U! `& m( Y
  24.         filterSubMenuItem1,. l* ?' n( U1 l% W/ }) r1 Z
  25.         filterSubMenuItem2,
    9 ]  N" z3 |" X0 b
  26. ! H/ ]( u, e( B" r
  27.   F' |; c6 U8 \
  28. };6 o; t5 |& M0 I3 y. @3 ^1 E5 B
  29. void tree::OnMenuCallback(NXOpen::BlockStyler::Tree *tree, NXOpen::BlockStyler::Node *node, int columnID )- r; x7 s7 M; d+ z, ~
  30. {
    & E, m( b8 \: {* {: [1 C( F
  31.         TreeListMenu *menu= tree->CreateMenu();8 ?+ P# ]9 f' U6 l3 a( W# P% ?5 B- G
  32.         TreeListMenu *submenu = tree->CreateMenu();/ w. G$ O% `: n3 w; T
  33.         if(node==NULL)3 w4 ?- R( ]/ u; S! `( H
  34.         {& w' A+ k1 G1 K) D! X- {0 l
  35.         menu->AddMenuItem(RemovetopNode,"Remove Top Node","delete");4 W. u( C( W# d
  36.         menu->AddMenuItem(CheckedMenuItem,"Checked Menu Item");; W: X" O4 ^2 P2 V
  37.         menu->AddMenuItem(DefaultMenuItem,"Default Menu Item");/ ~9 u! |; v( t- r1 y1 L- r# J
  38.         menu->AddSeperator();% X2 b+ ^# Q; D" f
  39.         menu->AddMenuItem(DialogLaunchMenuItem,"DialogLaunchMenuItem");3 h% r. q( ~3 n. R+ S
  40.         menu->AddMenuItem(DisableMenuItem,"DisableMenuItem");
    : q+ k" v# V- `+ u' o/ J, J8 p
  41.         menu->AddMenuItem(HiddenMenuItem,"HiddenMenuItem");
    - ?9 C" a& z% M$ J, I3 I  G
  42.         menu->AddMenuItem(IconMenuItem,"IconMenuItem");
    1 f0 Z& J! |# u- c6 X; s$ H( W* j
  43. 2 P. E) \$ K8 k( }
  44.         menu->SetItemDefault(DefaultMenuItem,true);! v3 y) y+ M( e8 K! f- {
  45.         menu->SetItemChecked(CheckedMenuItem,true);, A% A* m# h) u5 k! \7 b& [1 \
  46.         menu->SetItemDialogLaunching(DialogLaunchMenuItem,true);
    6 c1 d" {% m; D& O4 x
  47.         menu->SetItemDisable(DisableMenuItem,true);
    ( u0 v6 i1 a- L# W  J$ X- t
  48.         menu->SetItemHidden(HiddenMenuItem,true);) A7 C  W3 S/ ?3 q& A
  49.         menu->SetItemIcon(IconMenuItem,"skeTCh");2 L7 m8 q$ R  u8 P8 y( L4 F  c" \& X
  50.         menu->SetItemText(RemovetopNode,"Remove Top Nodes");
    : q7 F6 Q9 H' k5 h' v6 e; ]% O
  51. . U. y+ g8 L, l3 T8 J$ m, v! J
  52.         // submenu$ p5 g8 s$ y% J# ~6 s. n) v3 p) t
  53.         submenu->AddMenuItem( SubMenuItem1,"Model Views");  r1 w6 H+ T9 k
  54.         submenu->AddMenuItem( SubMenuItem2,"Cameras");
    7 Y4 d. A' p/ T, g. m
  55.         submenu->AddMenuItem( SubMenuItem3,"Model History");" \- m+ y: h  a
  56.         submenu->AddMenuItem( SubMenuItem4,"History Model");& i+ o0 }6 l* H, J

  57. 3 q2 h; O$ i% p3 V# W
  58.         menu->SetSubMenu(RemovetopNode,submenu);
    $ \0 o$ Y8 ?9 d. ?7 J: s
  59. % R8 x$ z( \' {  @
  60.         }
    ) v9 Z; V, g+ W3 C
  61. else5 i( t' t6 v1 W9 N0 P! B7 g
  62.         {$ z% \! g# Q/ V" \" y8 J: Q
  63.         if(node==modelhistoryNode)
    ) \) M+ |; h6 F- T6 o5 i6 X
  64. + D/ o. x7 e: {! _/ p
  65.         {
    ' ^7 l9 o5 O5 l/ ~" U$ v1 `
  66.         menu->AddMenuItem(modelhistoryfilter,"Filter");
    ) D- M- X6 l5 O) W& {8 L, L/ F  Z
  67.         // submenu+ B3 U" r' W. o5 b; A2 \$ ^
  68.         submenu->AddMenuItem( filterSubMenuItem1,"Remove Item");& r# T0 z" N, U5 I9 q* Q/ `9 x5 R
  69.         submenu->AddMenuItem( filterSubMenuItem2,"Remove All But Item");
    5 y4 L6 l7 V9 O* B" u
  70.         menu->SetSubMenu(modelhistoryfilter,submenu);- D7 U3 B4 w/ s* H: y/ [2 U4 f
  71.         }% L- D* y4 R* T- \
  72.         else if (node==historyModeNode)
    ! Z0 O) F4 D+ ?
  73.         {, a" V8 s( S! f/ N. O
  74.         menu->AddMenuItem(historymenu,"History Mode");( h- D+ J2 S, H" z$ U1 O
  75.         menu->AddMenuItem(nohistorymenu,"History-Free Mode");
    / |7 E) {/ t& V
  76.         menu->SetItemIcon(historymenu,"check");
    # P/ @& |! m+ i8 j. c8 S
  77. }* p5 o/ i( s) X* {  l: Q; X

  78. $ t! O7 |3 F5 N" t7 O
  79.         }
    $ N7 H! M6 Z  M
  80. $ U/ |7 F: }& p2 z% f. t3 W5 j6 E& X
  81.         tree_control0->SetMenu(menu);0 j5 u) l2 ~1 S- {! w& d

  82. * e" M3 y6 i( S7 x: G0 z% t0 j( s+ W
  83.         delete menu;
    ( _- W6 L0 X) x
  84.         delete submenu;
    $ c5 H1 J& U6 m$ k  O
  85. }
    3 ^& H" E  y3 c' n) }, r
复制代码
" L2 d: y1 p, ?9 }/ f; L
4 g' L9 t8 o, r' K0 K- ^6 I- V

) @! m, S. X2 w, y- Q* M% }, ANX二次开发treelist控件添加右键快捷菜单回调函数的简单例子" k# z3 ]6 M2 J9 g

' m: D* Q& Z+ y" `" k这里大概的模拟了下 部件导航器的功能!
- N' U5 E, _, n) b4 Y- c1 O. ]3 k+ P8 N5 I- W& Z8 _3 P

! j) L' v6 d; v/ h

NX二次开发treelist控件

NX二次开发treelist控件

: n& G* ~1 N6 Z: l5 |) t# @0 a4 b3 K% F- ?9 C# T5 n

NX二次开发treelist控件

NX二次开发treelist控件

% C; p" [0 c$ z1 ]
7 X% ~2 f. k  ]# d% m

NX二次开发treelist控件

NX二次开发treelist控件

4 \! Q6 l6 j1 a1 W. E0 s
- b7 W2 O7 r0 Z
# m% g# D6 r: i* J
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了