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

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

[复制链接]

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

admin 发表于 2014-2-12 19:10:15 |阅读模式

admin 楼主

2014-2-12 19:10:15

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

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

x
  1. <p><div class="blockcode"><blockquote>
    6 Z* {4 g2 H' R% |* z% w

  2. ( c% x; F/ z7 @% R8 G3 n1 o- r

  3. 2 C9 m9 ^8 K# R! `. r) V: o& Z9 a
  4. enum MenuID
    5 j' M# u1 N6 T, D2 T6 F2 Y
  5. {7 ?4 ?0 W/ V  d: e# W7 h
  6. RemovetopNode = 0,
    1 u. E" j/ s' p( s9 M
  7. DeleteNode,4 \, K5 f+ Z/ K$ ~+ k8 \! e8 \% @
  8. CheckedMenuItem,2 |! K: \0 T+ G/ o- s
  9. DefaultMenuItem,8 Z. G: {; O7 v1 W* F# \6 [6 e
  10. DialogLaunchMenuItem,
    ; i; _- t8 O8 X$ f
  11. DisableMenuItem,! P# z6 _* }* f& k& A" T' h% n
  12. HiddenMenuItem,8 i- r# ?/ [6 Y/ T5 }6 R1 V$ E& @& n! }
  13. IconMenuItem,
    6 J( {! V6 D, l0 p. D4 g, S) n/ c" \
  14. ! I$ V2 Q: s. W
  15. SubMenuItem1,
    % w9 W/ H4 C( n( S  Y: |
  16. SubMenuItem2,; C$ E0 E- P5 F' z. k. s
  17. SubMenuItem3,9 J: |" ^4 b$ p3 N$ Y
  18. SubMenuItem4,
    % A# x& I7 ~. u8 {: H
  19. 0 r. `" B, N$ ^0 |! ^: ?
  20.         historymenu,) m  f# J( P3 ?9 i8 u' ?
  21.         nohistorymenu,
    - n" v) ~3 Z, `
  22. ( s0 q( p) _0 J1 P/ q
  23.         modelhistoryfilter,5 O* @/ W* ^4 y) ~
  24.         filterSubMenuItem1,; y7 q9 S$ ?, t
  25.         filterSubMenuItem2,/ f* N% X3 D0 M( ~7 R) G2 r% ~' m

  26. 9 W* \9 e6 e" e, z0 n+ M* p% M& b! Y
  27. 5 e/ l8 D1 `& p( K; o1 z9 }7 C
  28. };$ r) r5 p/ J! R! Y: i1 U  D/ q! @' @
  29. void tree::OnMenuCallback(NXOpen::BlockStyler::Tree *tree, NXOpen::BlockStyler::Node *node, int columnID )
    $ g% M7 s9 U2 d- g8 r% T
  30. {- X2 F# X' u2 P6 H/ s7 W3 ]
  31.         TreeListMenu *menu= tree->CreateMenu();
    ! {8 }4 f/ z6 I4 v5 v1 Q+ w0 k
  32.         TreeListMenu *submenu = tree->CreateMenu();
    # e3 O6 u! H" k/ V
  33.         if(node==NULL)7 S6 r; O: ?2 U- f
  34.         {0 E7 l  F2 q0 `6 X8 [
  35.         menu->AddMenuItem(RemovetopNode,"Remove Top Node","delete");" A' ^; ^7 R: p
  36.         menu->AddMenuItem(CheckedMenuItem,"Checked Menu Item");
    , q/ O* r* J, ~9 q' S; x- ^7 \
  37.         menu->AddMenuItem(DefaultMenuItem,"Default Menu Item");
    - n& m5 ~& J" t- ]1 e9 ~
  38.         menu->AddSeperator();
    2 _2 K0 K" u; K4 _$ J, A7 ?
  39.         menu->AddMenuItem(DialogLaunchMenuItem,"DialogLaunchMenuItem");- B4 z  k4 o/ E( K' D* F( x
  40.         menu->AddMenuItem(DisableMenuItem,"DisableMenuItem");
    + R5 _7 a$ N- I8 p% e# f
  41.         menu->AddMenuItem(HiddenMenuItem,"HiddenMenuItem");+ B) A1 P  D: S" Q/ E3 Q
  42.         menu->AddMenuItem(IconMenuItem,"IconMenuItem");. F* v! D# V1 @3 I) V# D! S! y( V
  43. 6 m% [% F7 v! B1 O% F: R9 p
  44.         menu->SetItemDefault(DefaultMenuItem,true);
    * U' y' m! X# _4 l5 T
  45.         menu->SetItemChecked(CheckedMenuItem,true);6 C4 ^1 D& Y& ?- K" p: A
  46.         menu->SetItemDialogLaunching(DialogLaunchMenuItem,true);
    * Z. M$ s9 \2 U8 v
  47.         menu->SetItemDisable(DisableMenuItem,true);" g, T7 F! U1 ?+ ?
  48.         menu->SetItemHidden(HiddenMenuItem,true);  p5 g" m8 C2 z8 R. V
  49.         menu->SetItemIcon(IconMenuItem,"skeTCh");
    0 k0 U, I) D. R2 N/ T
  50.         menu->SetItemText(RemovetopNode,"Remove Top Nodes");
    ) E% W3 v; k9 f* Z2 c8 M; A

  51. 0 A# |# Z  u/ x9 Z: T6 r  T
  52.         // submenu7 A* D) ~/ a8 B  K5 }
  53.         submenu->AddMenuItem( SubMenuItem1,"Model Views");, {5 d6 I0 b1 i' V# v7 a% l5 Z. e
  54.         submenu->AddMenuItem( SubMenuItem2,"Cameras");
    ( _& F1 x5 \# w2 i
  55.         submenu->AddMenuItem( SubMenuItem3,"Model History");, m. n/ C2 J" ~* d
  56.         submenu->AddMenuItem( SubMenuItem4,"History Model");6 }# ~0 x! _2 ~6 Q/ h

  57. ' Z: ?3 R0 _( i# L( h' ~. R
  58.         menu->SetSubMenu(RemovetopNode,submenu);
    : g! S. W8 h5 W- F% |

  59. 8 J5 a, U) `1 Z6 n8 M% u
  60.         }2 H* Q' P0 E2 {+ A4 b0 C9 l5 K3 t
  61. else1 E# P. q3 R7 c  r' f( Q% k
  62.         {( m0 u7 O- m# K
  63.         if(node==modelhistoryNode)
    8 e! \0 d" j$ X5 Q  g' n
  64.   m" K2 y+ L, Y, y
  65.         {% `* ^0 {. z- ?$ X9 |
  66.         menu->AddMenuItem(modelhistoryfilter,"Filter");
    ( }6 h% H& b. i" j5 i/ }
  67.         // submenu; n( g0 Y+ R7 A" `
  68.         submenu->AddMenuItem( filterSubMenuItem1,"Remove Item");+ V0 e* i7 M" j9 e
  69.         submenu->AddMenuItem( filterSubMenuItem2,"Remove All But Item");7 c8 X" n; U2 \/ T4 e+ x- W8 k) _2 g
  70.         menu->SetSubMenu(modelhistoryfilter,submenu);* c5 t" e8 O5 t% B3 b- M1 g6 r
  71.         }0 {# `  o5 Y6 z; G. V) U
  72.         else if (node==historyModeNode)+ C3 J% q* C0 t7 q( {2 O
  73.         {# {) E, g9 E$ z; Y/ u% w
  74.         menu->AddMenuItem(historymenu,"History Mode");( W- H) i" R3 _+ I: m7 d' I
  75.         menu->AddMenuItem(nohistorymenu,"History-Free Mode");; x2 K" H" a$ V- n7 b' t
  76.         menu->SetItemIcon(historymenu,"check");3 P0 Y; c0 D1 |
  77. }' h) \# c1 F/ C: N) h6 N& v

  78. ' u6 T) |$ ]3 P: q. T
  79.         }
      ^" i. Y3 M& R

  80. " k% v( ?2 x1 f' y1 }
  81.         tree_control0->SetMenu(menu);: g* ~  P0 y$ g" j
  82. . @% q/ A" d2 `. q1 F% K7 l8 o
  83.         delete menu;
    # B) \, F: w0 H' N+ y3 T& J' v) S3 i( j
  84.         delete submenu;- E( o& v6 L7 T9 f
  85. }
    7 Z5 _+ Q3 y3 h" \( m% k/ ]  e+ t& t
复制代码

8 l- J7 T% M6 h" n0 p
, c, B0 E4 Q$ f% v6 _: F% {5 S0 T8 N$ m2 U* R9 [$ h8 N
NX二次开发treelist控件添加右键快捷菜单回调函数的简单例子
8 h+ y* f/ H- r5 v
9 [% d, [6 Q$ I4 m- r7 u$ ~这里大概的模拟了下 部件导航器的功能!0 _( Y# o- W& U9 @$ q! v

* `8 e0 g$ Q! Z1 r1 o: ^6 S
3 {. J. @0 A5 ~

NX二次开发treelist控件

NX二次开发treelist控件

% U3 {# w; Q8 f+ d' c9 ^) f# x
2 ]; e# m8 d; W0 B5 K' @

NX二次开发treelist控件

NX二次开发treelist控件

  N/ W8 ?' k7 A9 \7 f0 |, s5 ~3 O
$ ~6 O. ]6 }0 D6 a3 }* W" i

NX二次开发treelist控件

NX二次开发treelist控件

- d/ z. x- q/ O/ z  M: D
$ r1 S' j; Y6 ?3 v8 K
1 a2 {, `# |& P6 q
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了