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

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

[复制链接]

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

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

admin 楼主

2014-2-12 19:10:15

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

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

x
  1. <p><div class="blockcode"><blockquote>
    8 T+ ~, T1 C; D- O. g, d" x' G# t

  2. 3 a' b3 n2 R" A* L: y1 d6 t. J! }8 x

  3. % s5 b7 ^- G$ w% n  ~- J! K6 R
  4. enum MenuID
    ( }$ h) _8 O: \5 s4 R
  5. {9 A2 x1 e! W. _& o0 c
  6. RemovetopNode = 0,
    7 @) V( V$ k  ^* ~. T' l
  7. DeleteNode,( \- ?1 F" n6 u8 e
  8. CheckedMenuItem,9 c* U* L% v$ E+ R6 h
  9. DefaultMenuItem,- k7 m! j+ k" V: \5 s3 q, v, a
  10. DialogLaunchMenuItem,9 j# v' _, ?& G
  11. DisableMenuItem,/ \! p# I/ c# n& _" F) F* H
  12. HiddenMenuItem,# I" E/ i$ T) `3 {% A! A9 U
  13. IconMenuItem,
    ' b. H; ?1 N/ @7 h; F) o4 l7 _
  14. 3 D7 m0 @- m* b4 @5 J
  15. SubMenuItem1,
    7 V; h; j( p( A! H$ F. ]2 g
  16. SubMenuItem2,; m) a' L& C) ]1 m* p
  17. SubMenuItem3,! B* |9 t# f% M8 D0 z
  18. SubMenuItem4,
    4 q+ n5 N4 z. _$ U
  19. 6 I8 n1 E% z6 c% |% y
  20.         historymenu,
    7 c9 L4 p# S8 w% t+ _' U, e) G. w
  21.         nohistorymenu,
    $ M/ ^( I6 q& T, K( r* C, P8 {

  22. ! X% Q9 s6 U/ A; i0 N# r
  23.         modelhistoryfilter,7 m; d% ^3 `6 f* A; d- D
  24.         filterSubMenuItem1,/ W/ y6 x1 V, F% E, R
  25.         filterSubMenuItem2,: A! g5 j3 e, z$ M

  26. ) \6 }+ S+ o& `; ]0 ^9 ?9 G: R6 T

  27. 1 ]9 [6 i3 G& l
  28. };
    , ?" D6 S1 w0 t
  29. void tree::OnMenuCallback(NXOpen::BlockStyler::Tree *tree, NXOpen::BlockStyler::Node *node, int columnID )3 t+ l9 z( @% A! B
  30. {
    4 h# }( i: U" i' w* F
  31.         TreeListMenu *menu= tree->CreateMenu();! ~0 i6 T8 B% W# z" e6 V4 w
  32.         TreeListMenu *submenu = tree->CreateMenu();+ R" F# J, A, l# F) P% J) o
  33.         if(node==NULL)
      f) i- j. h/ t! X, ?4 o
  34.         {1 r- \& V* R# g8 a5 A) A' ]/ E4 M* r
  35.         menu->AddMenuItem(RemovetopNode,"Remove Top Node","delete");9 F7 Z- D0 ~3 V- }3 _
  36.         menu->AddMenuItem(CheckedMenuItem,"Checked Menu Item");
    . j& f3 F5 h" s; u, Y  S  \
  37.         menu->AddMenuItem(DefaultMenuItem,"Default Menu Item");# I6 x+ g' |; j! R
  38.         menu->AddSeperator();* u& w4 @' j- J. u: F1 W
  39.         menu->AddMenuItem(DialogLaunchMenuItem,"DialogLaunchMenuItem");
    ) l+ K4 {% M, M, B* \. K5 C
  40.         menu->AddMenuItem(DisableMenuItem,"DisableMenuItem");
    3 K' L2 c* T  z
  41.         menu->AddMenuItem(HiddenMenuItem,"HiddenMenuItem");
    4 n4 ?! K' `7 A$ ~
  42.         menu->AddMenuItem(IconMenuItem,"IconMenuItem");4 m! |5 [7 f8 D" o8 d1 R+ X2 \
  43. # v0 e# d* q) c% Q, X% s
  44.         menu->SetItemDefault(DefaultMenuItem,true);
    5 w0 T: R8 F$ e
  45.         menu->SetItemChecked(CheckedMenuItem,true);. g" i! R- e4 f
  46.         menu->SetItemDialogLaunching(DialogLaunchMenuItem,true);# m* G& y, L. _5 w
  47.         menu->SetItemDisable(DisableMenuItem,true);
      u! D9 H9 {( Y% _2 U4 L
  48.         menu->SetItemHidden(HiddenMenuItem,true);
    , v; r' R  b8 y  ^+ B
  49.         menu->SetItemIcon(IconMenuItem,"skeTCh");
    ; x1 b: u& i9 ^4 j8 E
  50.         menu->SetItemText(RemovetopNode,"Remove Top Nodes");
    3 J8 W0 M1 Y% n, B7 O5 L9 _3 ~

  51. , E* c/ |& n) Y. R) i6 H. p- Q
  52.         // submenu5 c- g* ]5 M2 q- Y
  53.         submenu->AddMenuItem( SubMenuItem1,"Model Views");
    : q( a/ v1 C$ S8 @
  54.         submenu->AddMenuItem( SubMenuItem2,"Cameras");  E1 m/ y; W  }# S( G( f7 s
  55.         submenu->AddMenuItem( SubMenuItem3,"Model History");% z" I: ]/ `! C% w- h3 k
  56.         submenu->AddMenuItem( SubMenuItem4,"History Model");
    , u7 k4 F/ H" I$ T9 m, j5 ^

  57. ! ]( m5 w3 S0 b- s
  58.         menu->SetSubMenu(RemovetopNode,submenu);6 I$ Q: Q4 F5 [" k4 A

  59. 6 c  u8 `/ y' M9 R
  60.         }( z3 S% _/ y  I8 A9 [" I$ s- e4 l
  61. else3 u$ ~2 A) ^2 X3 i+ h
  62.         {+ N! F+ V( g3 |! w' a' s
  63.         if(node==modelhistoryNode)
    4 W' y- s4 C; \
  64. " y2 l, L' y# Q- W
  65.         {
    ; V; S% P; z" t+ J
  66.         menu->AddMenuItem(modelhistoryfilter,"Filter");
    0 l$ J, s5 o* I! z
  67.         // submenu/ [- S6 R; I2 k$ A4 C2 h4 t
  68.         submenu->AddMenuItem( filterSubMenuItem1,"Remove Item");
    8 t8 ]+ \) v2 {5 f; T; I$ n
  69.         submenu->AddMenuItem( filterSubMenuItem2,"Remove All But Item");
    * z# j5 K+ e9 y) W3 g1 F5 m9 V
  70.         menu->SetSubMenu(modelhistoryfilter,submenu);9 I' Q* E% m/ I$ d5 Y
  71.         }
    ! v; O1 ~( ~  s
  72.         else if (node==historyModeNode)0 q3 [( a6 R( z6 T: L9 `
  73.         {: q1 y+ J: x% Y2 h3 D: ~
  74.         menu->AddMenuItem(historymenu,"History Mode");+ R5 ^" S* S- c5 j
  75.         menu->AddMenuItem(nohistorymenu,"History-Free Mode");& e8 f% Z9 l% a# [
  76.         menu->SetItemIcon(historymenu,"check");
    * @5 a/ v3 ]( U% G
  77. }
    * j# f7 Y+ {, i, o: O5 T) @9 U
  78. / Y) v# q/ ]% y) r5 ^
  79.         }
    2 D& j' q; T* G. m! s. I

  80. ' j. X, {8 K# ~9 t7 T' r6 t" `
  81.         tree_control0->SetMenu(menu);
    # y% ]: [4 ?6 Z  T1 t' `
  82. / b- T  o2 [; i( t9 E
  83.         delete menu;1 H; `8 E$ R0 _9 l; E) X/ I1 c
  84.         delete submenu;
    ( x- R( E( Q1 _# b6 h7 c2 H2 f. }
  85. }
    9 v! y8 A/ O# c: [6 v
复制代码

# ?, t: z+ U& W7 d' X% |$ ~4 D( _5 ?( z' }; W; E$ O  L7 d

: |. P4 Y2 E- q2 e: gNX二次开发treelist控件添加右键快捷菜单回调函数的简单例子
0 U$ Y0 z* Q" [3 z- Y1 C" a8 c, r7 K" o! H) H, F* b" U/ |
这里大概的模拟了下 部件导航器的功能!" \5 K" n7 C6 j+ ?& Y0 |
8 W: i; a5 x# N+ g
$ F, w" z$ }0 K: l. U% T

NX二次开发treelist控件

NX二次开发treelist控件

1 h( g8 @( W" J/ A) z
* v( j7 d5 |+ E' `

NX二次开发treelist控件

NX二次开发treelist控件
2 Z2 j! M0 M5 s0 L7 {  d9 q

. v& l( t; Y  ~+ a" o

NX二次开发treelist控件

NX二次开发treelist控件

. a# c+ U7 }: {$ g& O& o2 E6 ^+ P1 D) c0 Y8 F2 I* Q) Z1 g9 @4 q
# E' U: [) {! Q' _
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了