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

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

[复制链接]

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

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

admin 楼主

2014-2-12 19:10:15

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

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

x
  1. <p><div class="blockcode"><blockquote>- e) g( K; i: R! p

  2. + T7 l, j; Z2 g- s) ]  h8 ~( e

  3. # D: @" K! O# j, c
  4. enum MenuID
    * i/ w9 ~* J7 E; P# S7 ?
  5. {
    ! |. G0 o+ s( ~  m: R/ H# L" M
  6. RemovetopNode = 0,
      i" i8 W8 y8 u+ o8 p
  7. DeleteNode,
    5 s" Z  m/ T( t$ \+ I
  8. CheckedMenuItem,3 ~) _: c6 c$ _
  9. DefaultMenuItem,
    8 L  O% O% C. R
  10. DialogLaunchMenuItem,
    ) M& q( v$ N- D; \! o& M  z
  11. DisableMenuItem,$ D9 m/ W# P7 n- i
  12. HiddenMenuItem,  N3 g* D8 D0 ^3 k
  13. IconMenuItem,& ]1 A' q) P2 D3 m, g
  14. ( m- e$ z+ D/ c2 T8 @
  15. SubMenuItem1,
    3 q; Y$ p& x. W
  16. SubMenuItem2,6 a; [1 c' M- K4 R$ H0 Q9 [1 X" p
  17. SubMenuItem3,
    8 S/ W2 i: o* S$ S
  18. SubMenuItem4,
    5 j1 b$ a- |6 d1 t

  19. " N# C7 T$ n, y* L6 }
  20.         historymenu,
    5 R6 `$ K' Z4 p" Q( |
  21.         nohistorymenu,/ V. ?! Y* @  f

  22. % I, C" M5 ]. i1 p
  23.         modelhistoryfilter,
    / S8 D, p! {" x, P2 M
  24.         filterSubMenuItem1,4 e) h9 s8 D; O, W/ V1 a
  25.         filterSubMenuItem2,, E' J8 a  z3 f7 @7 ~) d) i
  26. - \6 V* l+ G3 }$ `
  27. ! v  D2 O6 p" K! h
  28. };' _. k, p2 @8 C
  29. void tree::OnMenuCallback(NXOpen::BlockStyler::Tree *tree, NXOpen::BlockStyler::Node *node, int columnID )
    : J& p8 Z7 K! P
  30. {$ P( V% {) _0 j
  31.         TreeListMenu *menu= tree->CreateMenu();
    . T2 v$ B* \% x- w. ^5 c
  32.         TreeListMenu *submenu = tree->CreateMenu();
    / H0 Q8 h5 P7 H" f
  33.         if(node==NULL). J  W4 g" R- \$ V1 Q
  34.         {
    ' H/ g+ V. _4 q/ K
  35.         menu->AddMenuItem(RemovetopNode,"Remove Top Node","delete");0 X: |8 y' B9 F& @' ]
  36.         menu->AddMenuItem(CheckedMenuItem,"Checked Menu Item");
    ! B  R; y- {% C( X3 w6 k
  37.         menu->AddMenuItem(DefaultMenuItem,"Default Menu Item");
    6 s5 _0 J: T7 s9 i
  38.         menu->AddSeperator();
    $ ?& Z4 J% ?8 ~" w" s3 O
  39.         menu->AddMenuItem(DialogLaunchMenuItem,"DialogLaunchMenuItem");
    2 n3 u) u+ ?6 o& B" ?7 W4 H9 ^
  40.         menu->AddMenuItem(DisableMenuItem,"DisableMenuItem");
    # M0 T' O1 U7 C/ T
  41.         menu->AddMenuItem(HiddenMenuItem,"HiddenMenuItem");; L' u  w6 {  |; ]3 Z( U. _/ s
  42.         menu->AddMenuItem(IconMenuItem,"IconMenuItem");
    ; Z$ {0 f5 d6 r
  43. - g0 h) _# h' J/ T3 J" A
  44.         menu->SetItemDefault(DefaultMenuItem,true);
    ) c: K3 C( D' s8 \7 l
  45.         menu->SetItemChecked(CheckedMenuItem,true);- [) x" N/ D: F: ^5 l: h7 E
  46.         menu->SetItemDialogLaunching(DialogLaunchMenuItem,true);% u' ~8 s) d* E- _
  47.         menu->SetItemDisable(DisableMenuItem,true);
    ! Y1 i! y3 o: ~- P
  48.         menu->SetItemHidden(HiddenMenuItem,true);6 A( B, q- ]+ V4 u2 E
  49.         menu->SetItemIcon(IconMenuItem,"skeTCh");
    ( m, E5 Y- K% t* F
  50.         menu->SetItemText(RemovetopNode,"Remove Top Nodes");
      e, e6 e- c. U6 S4 a' `  t, I

  51. 4 r( |: s$ Y; A: J5 W
  52.         // submenu
    - ?0 s# E& z3 a5 L  \8 c
  53.         submenu->AddMenuItem( SubMenuItem1,"Model Views");
    3 [5 m2 ~: {. c2 f5 O* Z- e1 ^
  54.         submenu->AddMenuItem( SubMenuItem2,"Cameras");
    ; }6 {' `7 v$ x- A* O
  55.         submenu->AddMenuItem( SubMenuItem3,"Model History");. i: I4 J: P% d5 o1 w
  56.         submenu->AddMenuItem( SubMenuItem4,"History Model");
    * O3 n; v2 M2 d3 m+ A1 r$ h/ n
  57. / Q7 Z% M3 {2 c5 ]. e
  58.         menu->SetSubMenu(RemovetopNode,submenu);% [6 [( H' }5 N& }2 {: m: j

  59. " @! a1 k) S+ l( t' h
  60.         }
    + s5 p! r1 ?, i  \2 C
  61. else
    - c1 a& R7 a1 m3 I# j# O
  62.         {
    ! j( O3 K5 ~. G3 s! Z9 S" u
  63.         if(node==modelhistoryNode)
    2 e5 q, \/ V; _- H' g6 g) o
  64. " p9 G; ]5 B/ q% u5 z9 W# Q! P3 E! C
  65.         {, i6 v6 u1 t+ x! y! l
  66.         menu->AddMenuItem(modelhistoryfilter,"Filter");+ T- I5 A1 ^2 V- n
  67.         // submenu
    5 g9 a# k2 m/ Q- d: ?% o% z+ p- ^6 O
  68.         submenu->AddMenuItem( filterSubMenuItem1,"Remove Item");. e# F7 f& ~. n* _9 }. C  l8 y8 l4 \
  69.         submenu->AddMenuItem( filterSubMenuItem2,"Remove All But Item");3 A: {9 V5 n' p% z# X# f0 R
  70.         menu->SetSubMenu(modelhistoryfilter,submenu);
    / |6 j% q" b  ?7 C
  71.         }
    $ m5 u6 }, n% F" ]0 ~; X
  72.         else if (node==historyModeNode)8 d2 o" G" ^8 ~9 @2 o$ e6 _( ~
  73.         {0 ~, I! u" w# G% U' A
  74.         menu->AddMenuItem(historymenu,"History Mode");
    ; R- m3 i! s. F# |
  75.         menu->AddMenuItem(nohistorymenu,"History-Free Mode");2 X" _2 m1 s9 o# Z" Z& s
  76.         menu->SetItemIcon(historymenu,"check");
    + v5 }2 m) O6 I- f. V, F! ]
  77. }
    4 }$ ]9 |: y3 |7 p

  78. 6 w2 l/ _5 O: u
  79.         }+ T" Z: j% `) w& f1 d2 X
  80. ; E) Y3 [6 A& N! ]
  81.         tree_control0->SetMenu(menu);
    % d7 o9 w' B3 {9 d7 M$ W2 q1 ^
  82. 3 K! N% ]- K, [8 B. l/ t. o
  83.         delete menu;. B/ Q7 V) R) F' V; j4 U0 d7 A$ }
  84.         delete submenu;
    % G6 l' }/ r( y3 n8 T1 ]' \
  85. }
    $ M7 s1 D" n0 R8 x, p. {, L
复制代码
3 {" G1 X( X" D( ?- m* e; [
. n2 K; S3 [' ~. r( F
. Z. J, G$ P& t; Y+ l9 C
NX二次开发treelist控件添加右键快捷菜单回调函数的简单例子% N' `* F. J1 c# M9 L4 J

) Z% o9 d/ q6 X这里大概的模拟了下 部件导航器的功能!
1 H. o" y5 H, x, I2 O5 F4 j
( X8 E$ A$ c9 y8 m( V/ j% g) `+ S3 z; W, [% }3 [* w

NX二次开发treelist控件

NX二次开发treelist控件
( }; j8 X( o# t; M( j1 x1 b
# Q0 A2 y9 }- Z4 C/ E

NX二次开发treelist控件

NX二次开发treelist控件

8 g3 F- G1 {0 i
, z% q% B' M% u. j' i" V

NX二次开发treelist控件

NX二次开发treelist控件

' C% |! {4 i( m5 F8 \# i6 R' K( m! h  i  C8 A
: a. w9 G% E6 H
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了