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

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

[复制链接]

2014-2-12 19:10:15 5581 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 N$ \: H* v  _/ A  A9 d
  2. / G0 t, W+ e& |# r0 l  R$ `' \
  3. 5 G# d7 u& i6 y. p6 n
  4. enum MenuID. W7 p! Y2 p- M
  5. {
    * J2 B3 U/ @7 x' m
  6. RemovetopNode = 0,: W: K5 E, J7 Z9 j
  7. DeleteNode,' K2 [$ h! P* e/ h; i" h; E
  8. CheckedMenuItem,; P4 |1 x% e4 f4 [1 L2 w+ z( @- R0 X
  9. DefaultMenuItem,+ N9 B# U* j$ d
  10. DialogLaunchMenuItem,' }: m+ M5 I6 O0 u& H' q
  11. DisableMenuItem,
    7 _  D2 X: s5 ?& t. B
  12. HiddenMenuItem,
    $ B- w& F$ e5 l% O" g# @( I0 ]
  13. IconMenuItem,
    0 @9 ~8 z0 w8 F5 _  p" O

  14. 4 m; t' K7 \4 m! {/ o2 u  @
  15. SubMenuItem1,
    - F. j/ z$ T% k7 c/ K  ^9 f( h
  16. SubMenuItem2,+ Q/ N- H" u8 Q) D
  17. SubMenuItem3,0 k  L6 ~1 j6 j2 ?+ Z4 ^! j8 ~* @
  18. SubMenuItem4,# b3 [5 [- y: l% Y2 I
  19. " x3 v% k) p- i' S
  20.         historymenu,
    7 [( C. z# ^5 c( R; y5 I+ N
  21.         nohistorymenu,
    " f+ M9 n+ E( N  B- c- ]0 v9 `

  22. ; h2 H- y" v, t8 G" i
  23.         modelhistoryfilter,
    / n$ ]5 y- Y" t0 z6 r  X# i4 B" r
  24.         filterSubMenuItem1,
    ) s, d) J" b* G: a' `
  25.         filterSubMenuItem2,' F- l1 b' p. b* O  I
  26. 9 K) |! Q1 Q. p* q+ b
  27. 1 O  l8 ^9 `) Q5 U$ @0 E1 U
  28. };+ K) a! `& s* s8 Q+ Z! J2 Q! q
  29. void tree::OnMenuCallback(NXOpen::BlockStyler::Tree *tree, NXOpen::BlockStyler::Node *node, int columnID )4 x& e* U* P5 S" ?* m0 j( F0 |
  30. {
    ( z/ [  S. C' n
  31.         TreeListMenu *menu= tree->CreateMenu();. `9 c) ]2 w4 B
  32.         TreeListMenu *submenu = tree->CreateMenu();# c! w/ s% s7 {5 N% V
  33.         if(node==NULL): C  R3 T  s( N
  34.         {" I; s+ i7 c8 n8 }
  35.         menu->AddMenuItem(RemovetopNode,"Remove Top Node","delete");" ]' X5 k/ [8 [5 Y$ O6 W, m
  36.         menu->AddMenuItem(CheckedMenuItem,"Checked Menu Item");
    # Y; f/ p" a% D* f4 [0 k2 Z6 m4 i
  37.         menu->AddMenuItem(DefaultMenuItem,"Default Menu Item");5 u1 V- D; u! c* [! ~
  38.         menu->AddSeperator();* O/ a$ y8 |! X, H# s
  39.         menu->AddMenuItem(DialogLaunchMenuItem,"DialogLaunchMenuItem");( |: P% V9 n# v* [
  40.         menu->AddMenuItem(DisableMenuItem,"DisableMenuItem");
    + E% e  k6 p* w
  41.         menu->AddMenuItem(HiddenMenuItem,"HiddenMenuItem");
    + B1 d5 r; G, b0 }
  42.         menu->AddMenuItem(IconMenuItem,"IconMenuItem");! w  k3 \* r# l( z

  43. $ P+ v0 A+ ]8 o5 X( B
  44.         menu->SetItemDefault(DefaultMenuItem,true);( v) k% c' u& z2 g9 ?9 T$ x
  45.         menu->SetItemChecked(CheckedMenuItem,true);
    $ Q$ d7 v5 a: z  Y: _
  46.         menu->SetItemDialogLaunching(DialogLaunchMenuItem,true);
    4 b$ m. O0 Y) X! M7 S
  47.         menu->SetItemDisable(DisableMenuItem,true);
    ( ~& W& B8 a2 T( B3 i  |1 @
  48.         menu->SetItemHidden(HiddenMenuItem,true);
    4 q; b$ s- ]+ d' P- X/ f
  49.         menu->SetItemIcon(IconMenuItem,"skeTCh");
    : A4 h' z( Q6 i$ X$ R6 V8 ^
  50.         menu->SetItemText(RemovetopNode,"Remove Top Nodes");
    ! I( O: Q2 z+ ^6 A: h$ Q! X

  51. 1 M7 k  u3 _* K, B+ P7 P" S
  52.         // submenu
    ( L8 j: r' T. X9 O( {- i
  53.         submenu->AddMenuItem( SubMenuItem1,"Model Views");) K2 z+ u. Y8 {9 y, }# a
  54.         submenu->AddMenuItem( SubMenuItem2,"Cameras");9 w% N  l$ l0 w' F+ a
  55.         submenu->AddMenuItem( SubMenuItem3,"Model History");
    4 v0 t' V. A% r/ t' c% k# H$ M3 b
  56.         submenu->AddMenuItem( SubMenuItem4,"History Model");
    # E: Z+ Y! x# h" ]3 M

  57. # B1 q: ]# p- `6 P! Q  C
  58.         menu->SetSubMenu(RemovetopNode,submenu);
    . y9 D4 e! C3 ~8 C( [

  59. ( x" W: J" t$ n; a6 ?. \+ @$ B" ~
  60.         }4 W9 o# Z: F7 l2 T
  61. else" P: C6 l5 m/ d6 C+ ?" O, W
  62.         {
    3 L( h! ]6 t( M* |
  63.         if(node==modelhistoryNode)+ Q) }, b  ]2 ~. Y4 ]7 \3 a
  64. , I, M3 X, ^2 R/ O
  65.         {) k( U  x7 z" P# F) j5 I
  66.         menu->AddMenuItem(modelhistoryfilter,"Filter");
    . {& E+ B. q/ Z3 F* [% {( L5 S
  67.         // submenu( q2 n  W3 J8 A9 S  N3 p8 x
  68.         submenu->AddMenuItem( filterSubMenuItem1,"Remove Item");$ T4 W0 S: p) |5 u) K
  69.         submenu->AddMenuItem( filterSubMenuItem2,"Remove All But Item");
    # D! A1 F  d6 S3 \7 K5 v
  70.         menu->SetSubMenu(modelhistoryfilter,submenu);8 D- p! M$ p2 L) m
  71.         }( s) C9 p4 I" r$ P  E( Q
  72.         else if (node==historyModeNode)
    $ r$ `$ d, _# y. i, F! W+ g' w
  73.         {6 i- p5 n6 o( \  ]  P5 u: B  Q6 V
  74.         menu->AddMenuItem(historymenu,"History Mode");4 L$ {) O& c; I# c; l% m
  75.         menu->AddMenuItem(nohistorymenu,"History-Free Mode");
    & C) P" F- g+ C" [4 ^6 k; [* h+ f
  76.         menu->SetItemIcon(historymenu,"check");  j0 n0 E; S( z  Q4 ~
  77. }
    * O9 O* F0 v7 O9 \% R) V
  78. 2 z/ g7 {5 ?/ u7 N' j
  79.         }
    ; R2 j: b  ]4 w( {& H
  80. 4 G" f* h& n0 W# o7 D
  81.         tree_control0->SetMenu(menu);
    $ C- @8 h8 ?  A4 W7 {2 E7 g

  82. , ^1 K; }: L$ [; s
  83.         delete menu;; O) [! r+ @8 X8 G# F
  84.         delete submenu;
    1 ]5 M5 e: b/ \( ]- l3 S
  85. }# f# u( O3 M* y/ e5 B+ i
复制代码
7 }9 Z( r7 y( I" ]8 S6 G
* t9 U4 e" R& |! |" a% v; D

# R5 C& n9 [# w( s1 p: D0 j( qNX二次开发treelist控件添加右键快捷菜单回调函数的简单例子$ L6 v- J( E- A+ m9 Y/ s

- l/ P! G# z. u4 b9 v这里大概的模拟了下 部件导航器的功能!6 S2 }8 f8 Y  R7 U4 |/ @0 {

$ U$ ?; g  p% C+ \3 s1 I- G- W% R5 F

NX二次开发treelist控件

NX二次开发treelist控件

+ f( q5 v* Q5 Z  c- M: l2 J+ }1 v8 R1 C2 L4 O; P5 G

NX二次开发treelist控件

NX二次开发treelist控件

( l4 k5 \5 V" ?( D- |" e7 @3 G+ _3 L) X7 T! y) D

NX二次开发treelist控件

NX二次开发treelist控件

! i) H; G2 L2 ]8 X& k. J$ v9 p& Q: J) X1 e7 A

! g  G5 b- K: {1 H* H( 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二次开发专题模块培训报名开始啦

    我知道了