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

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

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

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

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

x
  1. <p><div class="blockcode"><blockquote>& `4 y. P, y9 v1 E3 z  t8 A% K3 I
  2. 6 [" P% U7 f4 Z, M, M" j
  3. " r' u2 c% w- ^: t$ `2 [: }
  4. enum MenuID0 _5 J6 \* \) @
  5. {: M( S# U5 ^7 K1 z7 b. N! @/ b
  6. RemovetopNode = 0,
    / n0 b0 k4 ?' X- Q
  7. DeleteNode,
    * _: t2 q+ ?/ c0 w1 j
  8. CheckedMenuItem,
      R, a( o' Y& s, O- K, ?& d
  9. DefaultMenuItem,
    # y4 l; I: \! U0 W, @* F" J3 D' b
  10. DialogLaunchMenuItem,
    . i& z6 K( c7 K" d  Z* W9 k& o+ s
  11. DisableMenuItem,
    , ]9 h* `6 S; K$ x/ ^8 I
  12. HiddenMenuItem,2 y+ C7 U# n1 m
  13. IconMenuItem,6 z8 L# l; F0 `& _+ u/ ^. D
  14. * ?4 y. J3 p8 b  R, {
  15. SubMenuItem1,, a7 @  _2 i' @; f# s" t& r
  16. SubMenuItem2,
    4 _! ^& {/ d9 G/ p0 U$ x! q
  17. SubMenuItem3,+ z8 A) n. n1 k9 u8 W1 T7 d0 e! A4 q  x
  18. SubMenuItem4,
    6 S* l) F) x2 h, E# G

  19. ) B0 _6 M5 L) I
  20.         historymenu,# ]# A/ A2 `) |/ @! C, _
  21.         nohistorymenu,. Z6 S' v& W7 v! y& ~1 u% [6 `

  22. 3 J% ^' T' @2 Y) A- G5 r) u
  23.         modelhistoryfilter,
    4 {: {! c8 _' L; F! D
  24.         filterSubMenuItem1,+ ?3 m7 j3 D# v5 J2 J( X. U
  25.         filterSubMenuItem2,7 y/ d; X7 d+ D2 M% E, M
  26. ( O4 `1 P( {" F! Q/ h' G

  27. ; |/ ^' H; O% @+ {& B2 u7 M. ^
  28. };+ e& d  E6 J& G; u* {1 O! t& z
  29. void tree::OnMenuCallback(NXOpen::BlockStyler::Tree *tree, NXOpen::BlockStyler::Node *node, int columnID )
    9 ^1 O( K. W' \' L
  30. {# r) ~2 M+ `7 R
  31.         TreeListMenu *menu= tree->CreateMenu();
    * |2 g+ B& B& ?; v& P/ v# \7 i" c$ s
  32.         TreeListMenu *submenu = tree->CreateMenu();% `$ _, S+ H: L5 n4 F( F0 ~8 I3 P9 D; c5 f7 T
  33.         if(node==NULL)- U. W7 t/ R  p* g  G) m
  34.         {
      z( ]" z/ o' K* |  b; l
  35.         menu->AddMenuItem(RemovetopNode,"Remove Top Node","delete");# c/ j5 S% V6 g" d3 i# i: a
  36.         menu->AddMenuItem(CheckedMenuItem,"Checked Menu Item");( g" U5 Z4 m+ s% Y+ c0 {/ @: X3 q
  37.         menu->AddMenuItem(DefaultMenuItem,"Default Menu Item");
    " [" _% @% L6 ?
  38.         menu->AddSeperator();
    - O8 g2 L# X& ?/ F/ r
  39.         menu->AddMenuItem(DialogLaunchMenuItem,"DialogLaunchMenuItem");" _( f: q* @  z! E8 I. i
  40.         menu->AddMenuItem(DisableMenuItem,"DisableMenuItem");
      d) ^) N) W. m; {( Y& B+ h# A8 p
  41.         menu->AddMenuItem(HiddenMenuItem,"HiddenMenuItem");
    - O- Y, A, z$ f2 a
  42.         menu->AddMenuItem(IconMenuItem,"IconMenuItem");! R$ g/ J- w/ e) `
  43. 3 b& p8 f+ H& B$ O: N8 _" ?2 q
  44.         menu->SetItemDefault(DefaultMenuItem,true);
    6 G. ]6 K+ ]* l3 P2 p% C) O$ j
  45.         menu->SetItemChecked(CheckedMenuItem,true);5 c8 W! r& ^. u7 I( X. p/ A* e0 z
  46.         menu->SetItemDialogLaunching(DialogLaunchMenuItem,true);  l2 q) H, m" B/ l  |; x
  47.         menu->SetItemDisable(DisableMenuItem,true);3 |$ y+ z" Q: p( W  Y; n% N8 o
  48.         menu->SetItemHidden(HiddenMenuItem,true);, D: H: j& ?) {1 \* M& x! P
  49.         menu->SetItemIcon(IconMenuItem,"skeTCh");
    / v. f# ~8 f; x
  50.         menu->SetItemText(RemovetopNode,"Remove Top Nodes");
    9 C8 b" Y# @7 c% Q
  51. ' I- r/ h* l: d+ Q9 ?' \* V$ z
  52.         // submenu
    * L3 b% c: }0 m* x, A
  53.         submenu->AddMenuItem( SubMenuItem1,"Model Views");
    6 V' z( J4 d9 p3 ]8 E5 }. g1 e5 W
  54.         submenu->AddMenuItem( SubMenuItem2,"Cameras");+ A( @; t4 f3 m4 l
  55.         submenu->AddMenuItem( SubMenuItem3,"Model History");% x$ \' T7 W4 o! q
  56.         submenu->AddMenuItem( SubMenuItem4,"History Model");4 t/ F; y8 s: t" g

  57. $ N, k. U* `) J( P" Y; F
  58.         menu->SetSubMenu(RemovetopNode,submenu);0 c8 i3 m. v; g: E6 E3 ?

  59. ; j0 V; Z9 U, R; j
  60.         }* z  q5 ]: {, k4 v
  61. else- m7 }+ S2 D4 t5 G' w) R0 @! _- a
  62.         {5 {1 P" r( `7 q+ ~+ c" K! F
  63.         if(node==modelhistoryNode)8 q3 W# i+ C: Y+ l8 |1 l/ {

  64. ; s  n9 d, K* X, i6 J
  65.         {4 [* E  m1 c, p* y
  66.         menu->AddMenuItem(modelhistoryfilter,"Filter");9 T" t2 S; ~) }/ A. e$ l
  67.         // submenu: v4 f# e- _6 Q
  68.         submenu->AddMenuItem( filterSubMenuItem1,"Remove Item");
    / E! U# T/ A5 V- F2 L: w
  69.         submenu->AddMenuItem( filterSubMenuItem2,"Remove All But Item");
    & D8 N2 c2 c: u9 P. ~
  70.         menu->SetSubMenu(modelhistoryfilter,submenu);
    4 ?6 |' _8 |# T) u, B+ }& W
  71.         }6 `# M# t$ s9 W8 Q$ h( ^  M
  72.         else if (node==historyModeNode)8 V' N' Z- c3 c' Z1 O
  73.         {
    0 K  R" c' V! ?1 q! L
  74.         menu->AddMenuItem(historymenu,"History Mode");5 K! A- ~& z" `  I
  75.         menu->AddMenuItem(nohistorymenu,"History-Free Mode");$ D0 y  j9 o* J( x8 `
  76.         menu->SetItemIcon(historymenu,"check");/ u/ F0 F7 z7 E
  77. }
    . V0 O1 J4 {( i0 q: x

  78. 1 E  h9 j* N: O
  79.         }$ x' a, `3 s0 V8 q6 L* ]
  80. . G3 z2 L! G5 H( [% l9 V
  81.         tree_control0->SetMenu(menu);( ]8 B4 W1 O9 k+ B. q% I
  82. % `9 Y+ ^/ V7 P( |* H
  83.         delete menu;
    8 U8 P8 y+ t9 s1 }3 |0 z+ E  S# g8 U
  84.         delete submenu;
    , \4 L6 }0 |$ Q
  85. }; ^; @' r0 c: A" |# B8 D+ U# D
复制代码

9 H2 h" ?  S# p1 V9 U4 i6 S, u1 a' U9 a: X- j8 G8 z

7 {+ y4 f, U3 F# jNX二次开发treelist控件添加右键快捷菜单回调函数的简单例子
' _  _' l0 j, h, [" d+ R2 i/ M7 }+ F( g; I& ]; L
这里大概的模拟了下 部件导航器的功能!
! L# h% }; |6 {
. j- ]2 w3 o: s) z5 Z5 H
/ m. f# \8 x$ c- s+ J: k$ v

NX二次开发treelist控件

NX二次开发treelist控件
# g4 E1 T2 n) s8 f6 e7 W0 W0 E) K
  |- ~9 V. p9 |" E0 u

NX二次开发treelist控件

NX二次开发treelist控件

: d7 D% a7 N1 J, T; k6 E) n% s5 x6 O
# `- @8 l, @9 x% r2 n$ S6 V. m

NX二次开发treelist控件

NX二次开发treelist控件

* \+ g4 l8 Q0 G% Y% d# E' z
$ l6 O2 @; t3 F
1 k5 g8 w* @5 m9 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二次开发专题模块培训报名开始啦

    我知道了