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

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

[复制链接]

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

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

admin 楼主

2014-2-12 19:10:15

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

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

x
  1. <p><div class="blockcode"><blockquote>: C! n2 T, V. B7 u

  2. 7 w) F& L; [$ l+ e# A2 R8 j& S0 m

  3. + c' ]3 ?' O# U1 F6 g
  4. enum MenuID
    : s) X; ~4 l8 N+ c% }2 J
  5. {  o5 J" t' @# u7 `+ s
  6. RemovetopNode = 0,
    % H2 |2 l" T. |& H0 V0 V
  7. DeleteNode,6 d' y4 K4 ?2 q+ l9 t$ M
  8. CheckedMenuItem,: k5 F' ?( }! u9 F
  9. DefaultMenuItem,( [' r, ]! E( q9 o) R1 s
  10. DialogLaunchMenuItem,
    * p" U* n( o) f) {. u2 T9 `
  11. DisableMenuItem,: L7 {/ \  b9 r' x
  12. HiddenMenuItem,+ V; g, i2 Z' X+ ?( @* C+ @2 U
  13. IconMenuItem,
    3 I; K( I$ Z% u& a+ V' N- t
  14. 3 f* d$ M2 I/ x6 ~8 n) U
  15. SubMenuItem1,! X8 M& u8 C& q3 N2 {; f
  16. SubMenuItem2,- ~" }4 i$ b- h( `- Q
  17. SubMenuItem3,# r. W9 Y/ S- @' \6 T/ x! A" s
  18. SubMenuItem4,& _0 J' x6 k: {$ O0 e! E3 h# j
  19. 3 y4 E( n1 C3 [. `5 ]! Y( `1 y- s3 `
  20.         historymenu,- N, M- W4 z$ m' C% v7 ?
  21.         nohistorymenu,
    " ^- ~" O3 O2 j- j0 T
  22. 3 q- v% s2 T1 p& x- m# f$ B
  23.         modelhistoryfilter,
    4 F+ K+ M* @4 _2 G! J
  24.         filterSubMenuItem1,
    6 _  {6 h  ]$ r
  25.         filterSubMenuItem2,
    ; E2 z4 H  j: i! e
  26. / Q, }0 o; h2 m  z" [( Y$ u# a
  27. ( }+ ^0 I# a: ^9 o; p9 [8 p# H# y
  28. };' ~6 v; a1 \5 E3 T5 m- D$ a2 |
  29. void tree::OnMenuCallback(NXOpen::BlockStyler::Tree *tree, NXOpen::BlockStyler::Node *node, int columnID )* `3 @3 O  k9 P; t, A6 L
  30. {6 {  [3 T7 N% S8 O5 |
  31.         TreeListMenu *menu= tree->CreateMenu();
    $ f6 g" _( ~5 y6 Y
  32.         TreeListMenu *submenu = tree->CreateMenu();5 k! H$ I! g3 l3 m0 M
  33.         if(node==NULL)
    " L% F# }) G- d+ o* b$ o9 S) p- G
  34.         {  ~5 ^/ [1 E* b! \
  35.         menu->AddMenuItem(RemovetopNode,"Remove Top Node","delete");2 l; H/ O" T* L) r' b  i
  36.         menu->AddMenuItem(CheckedMenuItem,"Checked Menu Item");8 Z; K/ q+ Z' y: X- Z
  37.         menu->AddMenuItem(DefaultMenuItem,"Default Menu Item");3 K- g* C( U1 G0 F
  38.         menu->AddSeperator();
    7 X; {, k' ]" H* R( k
  39.         menu->AddMenuItem(DialogLaunchMenuItem,"DialogLaunchMenuItem");2 C: P1 z6 V2 m$ d* b
  40.         menu->AddMenuItem(DisableMenuItem,"DisableMenuItem");
    # P5 |2 M. X9 P, B1 O/ `
  41.         menu->AddMenuItem(HiddenMenuItem,"HiddenMenuItem");
    1 x1 C# O. I; m5 N
  42.         menu->AddMenuItem(IconMenuItem,"IconMenuItem");
    : Q9 P& F- w7 r, x& ?5 g# w4 P
  43. 3 I$ x: l1 y) _6 Q$ v  k4 K  b- y% g) }
  44.         menu->SetItemDefault(DefaultMenuItem,true);
    ) }, e; h) u6 F( P/ y" R; I9 I  E
  45.         menu->SetItemChecked(CheckedMenuItem,true);, v+ M0 O7 F' n
  46.         menu->SetItemDialogLaunching(DialogLaunchMenuItem,true);
    8 B* k* r. T1 M. z: P
  47.         menu->SetItemDisable(DisableMenuItem,true);( _+ x! M6 ]4 a# t
  48.         menu->SetItemHidden(HiddenMenuItem,true);) ^" _; z) p* }, _* y" e
  49.         menu->SetItemIcon(IconMenuItem,"skeTCh");3 ~" n& i2 c$ v9 a! t
  50.         menu->SetItemText(RemovetopNode,"Remove Top Nodes");
    $ ^  T; p! h% r  o
  51. ; l- {, J* ~, q& }
  52.         // submenu
    & |" b9 [4 U4 a; \( I. U
  53.         submenu->AddMenuItem( SubMenuItem1,"Model Views");
    4 B3 I7 s, B# t9 g2 J3 R0 C
  54.         submenu->AddMenuItem( SubMenuItem2,"Cameras");
    + ^: }; l) {- Y* m, j6 M4 f
  55.         submenu->AddMenuItem( SubMenuItem3,"Model History");4 T) o% x: l+ N0 w( C3 P
  56.         submenu->AddMenuItem( SubMenuItem4,"History Model");+ ]7 X. u- j2 h4 o* y
  57. ) L3 N+ C8 o3 S$ v, `
  58.         menu->SetSubMenu(RemovetopNode,submenu);* `& S3 Y0 ~2 K% s$ n/ O* G
  59. & {6 i; V; u* F+ Q8 @: a) D" _" {
  60.         }
    ( {. V& H. ^8 K. x0 L' n2 f
  61. else" |* b  H3 R" A3 k+ z2 u
  62.         {
    7 e4 d6 x: {/ ?6 i5 @! T& c
  63.         if(node==modelhistoryNode)
    * o- {7 i8 w! G; s" U# H
  64. ; E4 }- r( u2 j: m0 i4 [2 ^
  65.         {
    3 L5 E& g- s% Q
  66.         menu->AddMenuItem(modelhistoryfilter,"Filter");
    . s. Q8 V6 t' A: E
  67.         // submenu7 y( B5 n" H. d+ [% k
  68.         submenu->AddMenuItem( filterSubMenuItem1,"Remove Item");2 i+ M; Y/ Z! }# V+ Q
  69.         submenu->AddMenuItem( filterSubMenuItem2,"Remove All But Item");4 z- I/ j! X) E' I+ M: n6 m7 A
  70.         menu->SetSubMenu(modelhistoryfilter,submenu);
    ) r( z9 N0 t9 j" a0 g% u' P
  71.         }5 t* O! n8 V3 G% V8 \
  72.         else if (node==historyModeNode)
    3 w! \. Y& H/ ~
  73.         {; B& z$ L1 h0 b; P
  74.         menu->AddMenuItem(historymenu,"History Mode");0 D0 Y+ j/ {9 i) a  T# H, k5 f
  75.         menu->AddMenuItem(nohistorymenu,"History-Free Mode");; h, {/ c5 {- \) T  Z' J
  76.         menu->SetItemIcon(historymenu,"check");
    8 t  e8 g. W. r" ?  Z  G  z' Q
  77. }: G: c0 h" j8 b+ C) e2 I  ^! Y

  78. ' P: c* Y* W, Y9 w  z. h/ U5 A
  79.         }
    , C& Q- F2 N# K; {; I. {( Y( }+ O
  80. & ^0 r6 N  A% v- r
  81.         tree_control0->SetMenu(menu);0 R1 ^. |" S% r( U% ^& I

  82. 0 ~* W( }; n! l
  83.         delete menu;
    + Z" h% B8 S, w2 f, f0 v. v% ~
  84.         delete submenu;
    6 S9 X- I7 w7 I6 r! q8 E
  85. }+ h  I# p0 s& W6 `+ H3 T
复制代码
2 h" j1 [0 L9 K

" E" `' ?( _/ |! t
. Q9 e7 I8 b* [) q: e6 Q7 C' \* ?" zNX二次开发treelist控件添加右键快捷菜单回调函数的简单例子  j5 b& d7 Q0 ~9 O
& |  o9 t- G7 n( B1 A- U6 M
这里大概的模拟了下 部件导航器的功能!
" T& V. ~' E! C: S
8 C# ^& y4 n. L3 K7 |' Y" x9 o0 E" I) s0 R$ U9 o3 d! {7 |

NX二次开发treelist控件

NX二次开发treelist控件

; ]2 K2 d$ X8 A% A$ W7 ^7 e" J' A$ `# b% `; r, q& E

NX二次开发treelist控件

NX二次开发treelist控件

4 d6 M) N( e" ~1 a7 [
" x8 ^/ [/ r) ~3 o

NX二次开发treelist控件

NX二次开发treelist控件

3 t( L. Y# o  r/ J  w1 u
2 }0 P+ b4 h' M4 R) a! S$ v2 m% r4 x( U' z
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了