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

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

[复制链接]

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

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

admin 楼主

2014-2-12 19:10:15

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

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

x
  1. <p><div class="blockcode"><blockquote>0 Y: P/ N7 d% }& O, _
  2. 1 T+ h' b5 l1 B
  3. 7 b  E9 i& M! _8 t6 D; a3 |: O
  4. enum MenuID
    % w6 z# L/ @9 l
  5. {# C' P! q+ d! A9 I6 Q! m4 W
  6. RemovetopNode = 0,6 n4 s2 F( o. P, `* @9 ]) a/ J( I
  7. DeleteNode,2 D  y& M8 C& @
  8. CheckedMenuItem,
    ; {. i2 F$ v$ p1 l1 K
  9. DefaultMenuItem,
    ; B5 t4 n7 ?* r. Z
  10. DialogLaunchMenuItem,
    7 j% I6 M" W: |  z8 ~0 @
  11. DisableMenuItem,
    + J9 u$ M$ {) x( E2 |
  12. HiddenMenuItem,4 g# X) p- L8 ~6 y) o0 G3 T" o6 f
  13. IconMenuItem,
    ! ?0 w& G; [) H
  14. 8 `7 m) ?' a/ n; B$ s" a' k
  15. SubMenuItem1,
    , F1 {3 _2 G6 a, w
  16. SubMenuItem2,# U" r- R+ a* w
  17. SubMenuItem3,0 q* e; }1 @1 x0 Q5 {- z
  18. SubMenuItem4,
      E' t& ?* V/ t$ H% N

  19. / Q  C2 k2 F  C- l2 n8 f
  20.         historymenu,
    $ N' D  P4 v: n( U
  21.         nohistorymenu,/ o; [; @7 M. K: h% k
  22. : w- q9 r3 m% `' I, f; p* ?
  23.         modelhistoryfilter,; o. |8 G( W3 i+ u$ N0 y
  24.         filterSubMenuItem1,
    4 g7 ?, d$ t+ \) }- E7 ]. a
  25.         filterSubMenuItem2,
    7 ?* Q; S! ]) Y, W. h! \, f

  26. & X  t, n5 @1 `+ u9 t
  27. - |5 F1 L) t+ u0 Z. M6 i
  28. };
    6 k6 W9 r" [! g- F9 B! s6 n
  29. void tree::OnMenuCallback(NXOpen::BlockStyler::Tree *tree, NXOpen::BlockStyler::Node *node, int columnID )2 N. I- a, J: }/ r" |
  30. {
    3 S1 D: L: Z, w. I
  31.         TreeListMenu *menu= tree->CreateMenu();
      U$ i  |+ S4 @
  32.         TreeListMenu *submenu = tree->CreateMenu();
    4 |  p3 d% S0 {+ ?: E8 Y
  33.         if(node==NULL)
    + s) s, }4 @2 N: C5 C' Y
  34.         {
    * ]( s/ N3 t- i8 u# p6 a: _
  35.         menu->AddMenuItem(RemovetopNode,"Remove Top Node","delete");, U; A, W4 k5 [9 Q" |3 u
  36.         menu->AddMenuItem(CheckedMenuItem,"Checked Menu Item");+ ]. N% ~" X$ L6 a
  37.         menu->AddMenuItem(DefaultMenuItem,"Default Menu Item");
    5 @( T, h" b1 b
  38.         menu->AddSeperator();& L+ ^' x: i9 h3 |0 L
  39.         menu->AddMenuItem(DialogLaunchMenuItem,"DialogLaunchMenuItem");
    7 U* q) O' H( x& D) i5 M
  40.         menu->AddMenuItem(DisableMenuItem,"DisableMenuItem");
    6 r( K1 P0 K" g1 q7 C
  41.         menu->AddMenuItem(HiddenMenuItem,"HiddenMenuItem");
    9 p9 L( |3 o0 r" G( E$ ?4 Z
  42.         menu->AddMenuItem(IconMenuItem,"IconMenuItem");
    2 ?6 P, e3 d! Y; l
  43. 3 ^1 }2 Z' q0 Y) c! d- E0 O
  44.         menu->SetItemDefault(DefaultMenuItem,true);
    0 n/ _' w9 W/ @) Y5 W5 J
  45.         menu->SetItemChecked(CheckedMenuItem,true);4 X; K0 \) u' `$ Q
  46.         menu->SetItemDialogLaunching(DialogLaunchMenuItem,true);7 J5 r+ D6 }0 _% a
  47.         menu->SetItemDisable(DisableMenuItem,true);" Y+ G6 \4 ^" K: l; I0 i
  48.         menu->SetItemHidden(HiddenMenuItem,true);4 P& x4 H- `; P0 b2 c
  49.         menu->SetItemIcon(IconMenuItem,"skeTCh");
    # z/ ]2 q* q0 b  }* o: k7 a5 ~4 R# t
  50.         menu->SetItemText(RemovetopNode,"Remove Top Nodes");
    . ]% p6 J. z! v& P; K; D# m0 l: [
  51. - W( G2 o3 s+ `, [: }1 U
  52.         // submenu* [0 X  w/ p" U& i) O# S) v+ ~8 n
  53.         submenu->AddMenuItem( SubMenuItem1,"Model Views");
    ! E/ |4 h) N- K6 o
  54.         submenu->AddMenuItem( SubMenuItem2,"Cameras");
    4 x! H: b8 E; I( v: Y( _
  55.         submenu->AddMenuItem( SubMenuItem3,"Model History");8 q5 r0 t/ e, Z& z
  56.         submenu->AddMenuItem( SubMenuItem4,"History Model");
    7 v2 \! Z* A$ f) @$ x# o. B6 |' k

  57. # N4 h$ C: A5 Q0 R: I; h) B
  58.         menu->SetSubMenu(RemovetopNode,submenu);" }6 q6 J1 m, o8 u- w, g; H
  59. " ?8 o% N0 }' N: Y
  60.         }( F( i6 s$ y' ]+ V0 c. U
  61. else
    * U. I" R1 s: k% F; q/ e" v$ t
  62.         {5 @! X) j- O8 y$ L4 Q* }5 x
  63.         if(node==modelhistoryNode)  `5 D4 H5 a; H% y6 Q

  64. " M- q2 i+ B) k; K4 J; U5 X" s# u
  65.         {
    ; U" W3 u* O- ~) |. @
  66.         menu->AddMenuItem(modelhistoryfilter,"Filter");
    2 n$ ^1 _1 v9 y' R/ p+ _. x3 `
  67.         // submenu
    / [. t4 Q- B  Y7 k0 _( A; P; B
  68.         submenu->AddMenuItem( filterSubMenuItem1,"Remove Item");  G0 x* u! j  o- K, @
  69.         submenu->AddMenuItem( filterSubMenuItem2,"Remove All But Item");9 P) ^: f% ^7 z; F4 y
  70.         menu->SetSubMenu(modelhistoryfilter,submenu);
    * P1 V" F8 B& h1 Y4 K, D
  71.         }
    ' x! g/ f1 X" H8 J
  72.         else if (node==historyModeNode)8 O5 J7 c4 k7 Z7 W& N
  73.         {
    ! Y2 x9 K+ S0 P9 g6 I( p
  74.         menu->AddMenuItem(historymenu,"History Mode");
    ) U* I8 W) @' p: f& @- [5 g
  75.         menu->AddMenuItem(nohistorymenu,"History-Free Mode");
    ( i1 p, \% z! b
  76.         menu->SetItemIcon(historymenu,"check");8 ?! y& y- ]$ e% `
  77. }, U3 t; a9 w8 _6 g

  78. 5 y/ F3 q; J8 G) Y! A
  79.         }& ~+ e9 D# v/ z6 O. ^
  80. * F! @) J7 W* z5 G
  81.         tree_control0->SetMenu(menu);
    4 f$ t4 s' e) T' J8 E' ?! `$ O
  82. 0 i2 P2 D8 R- m$ z* j- L
  83.         delete menu;! [7 Z) J9 Q# M& R) c
  84.         delete submenu;
    " I2 }& F; m8 h2 M8 T: U% H! @
  85. }8 {2 i0 D0 ~) y5 ?3 ^& c9 N
复制代码

4 O6 y0 A$ ]0 I* T+ m
! ^. q0 H- w/ ]" j& t: R' A
. t) d5 }0 k  X! p7 LNX二次开发treelist控件添加右键快捷菜单回调函数的简单例子
: V7 l) g& P* |& l" R+ p4 }9 i( O
这里大概的模拟了下 部件导航器的功能!
5 {* T. ]. e$ E; T$ J
+ }' M3 x' B5 R* U' O% a
" y, k9 T+ O9 `) s$ z+ I* [; E

NX二次开发treelist控件

NX二次开发treelist控件

( W  X$ `& _* h6 Z$ L$ Q2 `1 v/ A) T

NX二次开发treelist控件

NX二次开发treelist控件

) A7 J# ^" J! j# r3 G5 d3 z
; k9 k% }( r6 D

NX二次开发treelist控件

NX二次开发treelist控件

" W0 t! Y; J+ Q, `6 V! h( M- Z' ?0 A
+ Q" o6 F& w) N! H6 J) C6 i! n3 s& H7 O  c* i5 j7 p
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了