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

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

[复制链接]

2014-2-12 19:10:15 5506 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 Y8 s6 r! c" I% x, T9 k. G
  2. 4 N0 |0 F! d( w% b& u0 n( r" z5 {2 f
  3. - a/ t8 d/ z  u! `3 h
  4. enum MenuID& C) m+ ?+ z1 p" S- I
  5. {
    : l$ H, w/ T9 W1 }( s# H: E
  6. RemovetopNode = 0,2 J  t1 S9 ?# A. p7 d/ H
  7. DeleteNode,3 o3 J7 i7 |1 }& A
  8. CheckedMenuItem,
    ( y. h" \1 N5 J1 L$ ]0 B* Q
  9. DefaultMenuItem,
    % Y. a; m. |% S
  10. DialogLaunchMenuItem,
    ; h" ?5 x. _& i& d  R
  11. DisableMenuItem,# c5 b8 {% i) `; Q
  12. HiddenMenuItem,
    ' y& \) u5 N( _
  13. IconMenuItem,' g# ]. u" ?/ K6 s
  14. 9 J/ ^. ^  G+ `9 X# J5 `
  15. SubMenuItem1,8 _3 d/ H2 A0 E1 a. D
  16. SubMenuItem2,8 O/ r# t! f6 t  f6 \8 p
  17. SubMenuItem3,
    5 C% n% b6 A" n- p: C; O
  18. SubMenuItem4,* C: P" Y9 d  n$ D
  19. ( F, `5 k" P- d' p+ |
  20.         historymenu,/ _4 E9 p7 C. K
  21.         nohistorymenu,* d* z2 w1 b$ [8 g. M- O) q8 e
  22. 9 z$ p2 X) w/ ]$ u/ }
  23.         modelhistoryfilter,
    : J8 f7 {) [9 ^" u1 P- Q- z3 a6 N3 d
  24.         filterSubMenuItem1,& e: L2 v$ M7 t0 h" g
  25.         filterSubMenuItem2,  u  ^! A2 k$ m! N
  26. 7 O1 ~; M4 V5 e! V) A

  27. , r+ @' B% s0 W) E: j
  28. };" c4 j# v8 c8 A- K- a
  29. void tree::OnMenuCallback(NXOpen::BlockStyler::Tree *tree, NXOpen::BlockStyler::Node *node, int columnID )7 |4 W+ i) J9 ]0 U
  30. {% _7 Q7 C% ~+ V
  31.         TreeListMenu *menu= tree->CreateMenu();2 ~8 K% a! Z1 f+ n; |# ]
  32.         TreeListMenu *submenu = tree->CreateMenu();
    2 ^* a- o" h8 Q! a
  33.         if(node==NULL)- ~# U& f. z! v# @) |
  34.         {/ G( ?# x  F0 ?& [. ]: r# N
  35.         menu->AddMenuItem(RemovetopNode,"Remove Top Node","delete");
    ( G& e. O7 L) H% s9 g8 [
  36.         menu->AddMenuItem(CheckedMenuItem,"Checked Menu Item");
    - G/ h' `' y! }
  37.         menu->AddMenuItem(DefaultMenuItem,"Default Menu Item");# B3 D# R3 }; g6 a3 e
  38.         menu->AddSeperator();$ i: [0 f% z. Z
  39.         menu->AddMenuItem(DialogLaunchMenuItem,"DialogLaunchMenuItem");4 v2 C' w9 g5 j) Z3 m
  40.         menu->AddMenuItem(DisableMenuItem,"DisableMenuItem");2 v$ S9 o# m8 E3 b
  41.         menu->AddMenuItem(HiddenMenuItem,"HiddenMenuItem");
    . m# P+ ]5 e4 |5 J/ t# h1 h0 \
  42.         menu->AddMenuItem(IconMenuItem,"IconMenuItem");
    1 z" r5 h2 K; V4 o2 t, l3 C

  43. ; p% I( ^7 M' Z8 \
  44.         menu->SetItemDefault(DefaultMenuItem,true);
    4 \9 |2 p, e. v7 W$ @4 t3 U4 A
  45.         menu->SetItemChecked(CheckedMenuItem,true);2 ^3 _/ _" I/ d. V# f: z1 l% o
  46.         menu->SetItemDialogLaunching(DialogLaunchMenuItem,true);/ s  N9 j0 Q2 H# ]( K" w; \+ M
  47.         menu->SetItemDisable(DisableMenuItem,true);
    ! o. V* ~; z2 Q1 `' l; Q* n
  48.         menu->SetItemHidden(HiddenMenuItem,true);
    . z! f3 e  x; \4 U1 b# f
  49.         menu->SetItemIcon(IconMenuItem,"skeTCh");
      Z5 J$ X$ f0 I0 Y5 |
  50.         menu->SetItemText(RemovetopNode,"Remove Top Nodes");
    0 o: J- N# ~5 G3 P
  51. 5 Q6 s- b$ B8 ]: |/ D; l5 e0 l
  52.         // submenu
    3 x" Q. d) a  C' `
  53.         submenu->AddMenuItem( SubMenuItem1,"Model Views");
    / L' H8 a5 @4 O6 |
  54.         submenu->AddMenuItem( SubMenuItem2,"Cameras");4 l  }, @6 b9 c6 W
  55.         submenu->AddMenuItem( SubMenuItem3,"Model History");
    0 H4 N  n% H# x  _  ?- [
  56.         submenu->AddMenuItem( SubMenuItem4,"History Model");
    3 U3 t3 p0 [6 j/ d" W) E

  57. % e7 Z6 \- D1 ]! }4 k% v7 ~
  58.         menu->SetSubMenu(RemovetopNode,submenu);! [8 W6 ^7 |% T* H6 \: G" S
  59. 4 Z. `( A, `1 @  Q: d% w# W
  60.         }
    0 X$ M9 a9 N$ g6 G7 K9 ]. ~
  61. else
    ' {, V  I6 z8 S7 q, q# K
  62.         {
    & A9 K7 E+ _5 |* r# J2 {' {
  63.         if(node==modelhistoryNode)
    % R* a  J+ a: N4 s8 |7 J9 o8 d: y
  64. , k. U* z0 ]) g+ F: O7 u5 X& ^
  65.         {
    ) q/ s5 U0 q( l
  66.         menu->AddMenuItem(modelhistoryfilter,"Filter");
    4 V  y8 c  p/ A0 }' w
  67.         // submenu
    * U6 E2 h$ E7 Z9 Q; a2 t
  68.         submenu->AddMenuItem( filterSubMenuItem1,"Remove Item");* w0 c+ i9 H, ]5 Q- m, D
  69.         submenu->AddMenuItem( filterSubMenuItem2,"Remove All But Item");
    3 T: [  n. L0 @9 O
  70.         menu->SetSubMenu(modelhistoryfilter,submenu);
    , v5 {) }4 ]9 |+ C
  71.         }
    " b5 U6 l1 S, z! a- S) n& L
  72.         else if (node==historyModeNode)
    8 e2 D1 h& f) ?
  73.         {- h2 F! ^- W9 n* v7 p# Q" m
  74.         menu->AddMenuItem(historymenu,"History Mode");- x% C& T& n1 M  L
  75.         menu->AddMenuItem(nohistorymenu,"History-Free Mode");5 L4 G8 x, k8 W9 p0 w
  76.         menu->SetItemIcon(historymenu,"check");
    . p' f, n! o5 _: C+ y; t: I
  77. }; g8 f- ^- F$ C% n8 _

  78. 4 M+ H5 \5 \: l3 A
  79.         }& k: }8 U$ k" {0 V
  80. , a7 ]" t9 h" T( X! @
  81.         tree_control0->SetMenu(menu);
    + T0 w+ E) t) T6 ^- X' o7 l- F" z

  82. 5 n) r6 u0 }; @. V2 f9 a
  83.         delete menu;
    1 n$ a$ E6 }  ~4 @
  84.         delete submenu;
    & f9 g/ u' C$ d" t/ W. }4 P
  85. }
    1 {& `9 X" e" T8 {
复制代码

4 w" f: S" @' o! p% i; d6 e: q; P; [9 m: R
* O7 O1 p( i7 E% a% {, O
NX二次开发treelist控件添加右键快捷菜单回调函数的简单例子) p1 w$ J5 a0 t% g4 U  b7 w* n

  `  F8 L  V6 p0 L7 J( o9 e这里大概的模拟了下 部件导航器的功能!% G7 u7 N: J2 r( C

( O  Y, n. U  L6 M, V' ^4 Y9 `( l- ]( q( I, \7 }

NX二次开发treelist控件

NX二次开发treelist控件

, e/ x% d% a3 R0 u9 @: ~' Y  X. u/ {6 k# r4 C5 w" A

NX二次开发treelist控件

NX二次开发treelist控件

: y  a; h4 s) r5 D- K2 ~. a
. b+ F) [7 ^; S6 W

NX二次开发treelist控件

NX二次开发treelist控件
0 i0 z) v- p+ K" k, f, A  _$ |
& K  J9 l) {+ i, U$ @) u: |

8 S9 d# r4 L* j5 a
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了