PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

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

admin 楼主

2014-2-12 19:10:15

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

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

x
  1. <p><div class="blockcode"><blockquote>
    1 X+ n1 D. L* w0 \) s; T$ _
  2. 1 }% N) N) b, x( z2 |
  3.   W9 N0 [/ w5 v. d7 P) R  ^
  4. enum MenuID; I) [2 n! U& q5 \2 v
  5. {- N% F, o! a9 J
  6. RemovetopNode = 0,
    4 H; i- o) a! g8 r, \: d
  7. DeleteNode,
    & b+ n$ `) H1 o6 T" k
  8. CheckedMenuItem,
    : T+ ~7 s3 |; U3 R4 w
  9. DefaultMenuItem,' h7 N: O2 U; \. f
  10. DialogLaunchMenuItem," j8 ~- _+ i8 ^) r( P
  11. DisableMenuItem,7 X* }# H9 K2 i! V4 I
  12. HiddenMenuItem,
    * d9 w! O% g" I$ _  K
  13. IconMenuItem,
    5 g9 t8 b6 s+ k' a2 ?6 M6 \
  14.   Z4 Z$ a6 x$ A" D4 x$ H- a
  15. SubMenuItem1,
    1 U+ N1 m2 D: ]% J
  16. SubMenuItem2,
    - V" [: q/ O8 X: k" F  K
  17. SubMenuItem3,, _$ f! Q5 z+ c+ `- B. Z
  18. SubMenuItem4,- n. A/ s$ p3 ^7 [5 V% I6 G  r

  19. " P/ M' g8 W' ^  j0 t! y% _$ w
  20.         historymenu,
    ! n; e  S% O- j
  21.         nohistorymenu,
    ( ]. P' U1 E$ p. b- E+ l5 G8 r& D. a0 F

  22. " X' |- d5 }# k4 q
  23.         modelhistoryfilter,9 o3 f* o) Z3 X- Q9 N
  24.         filterSubMenuItem1,# _, g4 n2 n! a( C
  25.         filterSubMenuItem2,/ D/ O4 K; b% m" E2 f; V5 P

  26. , c3 c* Q+ M3 T

  27. 6 O9 q. U# E+ z( f
  28. };
    $ h: J) W8 q" g+ p' N; ]
  29. void tree::OnMenuCallback(NXOpen::BlockStyler::Tree *tree, NXOpen::BlockStyler::Node *node, int columnID )) s# O* Z! ]: _
  30. {
    7 Y  ^5 j5 J3 J* B$ O
  31.         TreeListMenu *menu= tree->CreateMenu();
    $ k! z; }0 L# q5 ^
  32.         TreeListMenu *submenu = tree->CreateMenu();
    & O0 S  _8 r% k. j. V
  33.         if(node==NULL)
    ! l2 e, i. h' R5 q% c
  34.         {, p+ _. `! {1 S" o, V
  35.         menu->AddMenuItem(RemovetopNode,"Remove Top Node","delete");# @! L, @8 P, Z4 `
  36.         menu->AddMenuItem(CheckedMenuItem,"Checked Menu Item");# d5 V$ F5 b+ ]# s' L) f4 n% w
  37.         menu->AddMenuItem(DefaultMenuItem,"Default Menu Item");
    " i; M* f  @: |. N6 d: t: p3 m
  38.         menu->AddSeperator();: h- [7 c+ W9 t- E# _6 ]+ z
  39.         menu->AddMenuItem(DialogLaunchMenuItem,"DialogLaunchMenuItem");
    $ y) V2 X8 u7 X9 }' G3 Y
  40.         menu->AddMenuItem(DisableMenuItem,"DisableMenuItem");
    2 B- K# A& ~# U) V7 r# C7 ]2 f* w( P2 ^
  41.         menu->AddMenuItem(HiddenMenuItem,"HiddenMenuItem");' @. v, M* J! ^
  42.         menu->AddMenuItem(IconMenuItem,"IconMenuItem");# k" w9 a/ t! V/ W5 ?

  43. . _8 I* C6 W7 ?  u4 z
  44.         menu->SetItemDefault(DefaultMenuItem,true);
    0 J1 B" `* V  Y* `
  45.         menu->SetItemChecked(CheckedMenuItem,true);! j! h9 _! s; M/ @/ A
  46.         menu->SetItemDialogLaunching(DialogLaunchMenuItem,true);+ ^0 ?7 Y0 D  f( D1 A
  47.         menu->SetItemDisable(DisableMenuItem,true);: _! k5 A! O  r& S" a  J. ^7 [( |8 h
  48.         menu->SetItemHidden(HiddenMenuItem,true);
    5 U* l3 J4 |) O
  49.         menu->SetItemIcon(IconMenuItem,"skeTCh");
    / B8 n9 u) j% Q/ y7 W. P
  50.         menu->SetItemText(RemovetopNode,"Remove Top Nodes");3 Q4 r$ X9 ^2 a3 Z6 ~* v. T
  51. $ H$ X- l) {( b$ g) A" E2 k
  52.         // submenu- o6 _- @+ o9 l) u$ r7 x8 X
  53.         submenu->AddMenuItem( SubMenuItem1,"Model Views");
      t" \) X' G7 }; e" k
  54.         submenu->AddMenuItem( SubMenuItem2,"Cameras");  i4 C9 v; Z2 p
  55.         submenu->AddMenuItem( SubMenuItem3,"Model History");9 j/ u; @% [: |; _8 v& j
  56.         submenu->AddMenuItem( SubMenuItem4,"History Model");
    * j% k4 H& \7 I  b8 O
  57. 3 }) ^8 o6 b$ d& }
  58.         menu->SetSubMenu(RemovetopNode,submenu);2 z6 @) ~: z! k& w

  59. ( X! T$ z, s" ^6 a" {
  60.         }
    3 d7 W  Q6 U' }! x' o" r4 W1 {
  61. else6 V+ v7 k% j: o$ s/ y3 F
  62.         {
    , G; v" |; t6 g' x9 p
  63.         if(node==modelhistoryNode)
    " m2 L* p3 u$ o( d' Z5 A  n
  64. 0 D' N; w8 B$ ]$ t
  65.         {
    0 M, X* G8 M/ k/ n7 m
  66.         menu->AddMenuItem(modelhistoryfilter,"Filter");
    ' ~2 q9 A( w* y! G( e5 l* ~
  67.         // submenu1 _- `* I) q! _2 Z+ f; w% x
  68.         submenu->AddMenuItem( filterSubMenuItem1,"Remove Item");' U& C# M7 i& Z7 S. L9 u
  69.         submenu->AddMenuItem( filterSubMenuItem2,"Remove All But Item");
    6 h1 Z7 s* B; _: A6 b9 J
  70.         menu->SetSubMenu(modelhistoryfilter,submenu);
    ! ~3 X3 B- }, h" V: p* a$ g
  71.         }
    + _- R7 k8 Z! S5 H( C- u( y% z
  72.         else if (node==historyModeNode)
    4 ~3 q- R- ^0 U9 s$ p0 u
  73.         {" s% @: h: h$ \! I
  74.         menu->AddMenuItem(historymenu,"History Mode");
    . Y# L0 h7 h1 |5 E
  75.         menu->AddMenuItem(nohistorymenu,"History-Free Mode");
    ' t0 d- c. U) o& R* ~# K" y
  76.         menu->SetItemIcon(historymenu,"check");/ a/ C( d0 |. a5 {$ B* ^
  77. }
    8 n. R; {( x# ]/ K3 w4 ]. E8 g) A
  78. 6 k* J, l5 C3 ~2 \: s
  79.         }
    1 O* z4 O5 J9 _9 M; x
  80. ( z, |6 _, U7 f+ Q: T' R
  81.         tree_control0->SetMenu(menu);- _# ]- h& Y* O4 m3 L3 J5 K9 C

  82. 4 _0 i) X. {1 K% o4 R2 g
  83.         delete menu;
    9 {" {' F8 L0 U" _8 I) ?5 f3 y
  84.         delete submenu;4 l. X6 a, x0 u! h0 r( Z2 K
  85. }
    $ u0 H  `  p3 U  U* Q" _
复制代码
5 z3 I" W" ]5 T- c% S' b
; b8 U, [1 C/ N: z6 K

# q" S& M/ o) m# j9 B/ Y( L9 ^NX二次开发treelist控件添加右键快捷菜单回调函数的简单例子; \8 G" O/ f2 e- g; T$ v! u) W

( A  c4 u  ^! v这里大概的模拟了下 部件导航器的功能!
" }; D2 {( d# F( x3 f4 q) _4 f- H4 j# J1 e

+ {, b. T: i+ Q( U

NX二次开发treelist控件

NX二次开发treelist控件

- c: a8 e3 h+ [5 r! ?* v. l. _* ^+ x# h" c

NX二次开发treelist控件

NX二次开发treelist控件
0 A$ s0 r# N8 `1 K1 X

" _  s5 Y$ g9 \3 U, s

NX二次开发treelist控件

NX二次开发treelist控件
0 G! F7 b; u/ K# ?8 l/ }9 G0 T! h
1 w& P0 [& J2 b% c6 z

; E. P0 t' A- {- l" F
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了