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

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

[复制链接]

2014-2-12 19:10:15 5520 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 o+ n$ M- r+ S

  2. 5 E) M) m5 w+ t! Z
  3. / p8 p8 S1 o& ]# A
  4. enum MenuID# {6 E6 N/ x. R' e! Z7 v8 b
  5. {3 o' ~. e4 K5 s' e( ]/ v/ s
  6. RemovetopNode = 0,6 ?5 W0 W7 @' e; G6 I; s; Y$ ^1 N3 Y
  7. DeleteNode,% L7 W6 l) J& A9 S2 D) x
  8. CheckedMenuItem,5 P1 }# W# G! x8 a. G
  9. DefaultMenuItem,6 b+ c( W8 i& z' Z" C
  10. DialogLaunchMenuItem,
    # _; Q( n% E% p! u5 ~% Z4 M3 K
  11. DisableMenuItem,/ @5 H% [2 k5 ]1 M. G2 t: {
  12. HiddenMenuItem,( |, c7 p: \% k1 K' P5 W" h
  13. IconMenuItem,
      T; R; O6 K: {- Q: G
  14. ( o) [3 r" R" n- n  C" M: Y8 j
  15. SubMenuItem1,' @9 t' Z( Z; i4 y
  16. SubMenuItem2,
    & {8 K0 B7 f, C' Y# O% ~
  17. SubMenuItem3,6 p+ S/ C9 `/ w5 H" _: J' Q3 S
  18. SubMenuItem4,
    3 ]* H2 a" @- h  H* G& U
  19. & c8 i- Y3 E) i4 E3 E  B  k
  20.         historymenu,
    ( V" q5 w: P4 J- G
  21.         nohistorymenu,& }1 M8 h' U# f" u

  22. 0 c/ v* w$ m; E: N9 U$ w" w
  23.         modelhistoryfilter,
    , R# `3 V; K- t5 I; Q% W5 a7 M
  24.         filterSubMenuItem1,
    # r/ K1 D( P4 E  u; p: c
  25.         filterSubMenuItem2," h7 p2 a2 w7 O1 v
  26. / H0 w! r1 }. e% q) V
  27. " n8 R) q, i! m1 M' @* Z8 E; O
  28. };
    1 s1 Z/ t* i! }$ U; [
  29. void tree::OnMenuCallback(NXOpen::BlockStyler::Tree *tree, NXOpen::BlockStyler::Node *node, int columnID )/ {7 W1 d+ t! e& v
  30. {& K$ B+ a' {& S1 e0 {2 P
  31.         TreeListMenu *menu= tree->CreateMenu();' v* Z6 E9 V  X: X2 s. X
  32.         TreeListMenu *submenu = tree->CreateMenu();9 K. K; t9 m  m6 X
  33.         if(node==NULL); `9 k9 i( i3 B6 d7 N8 Q
  34.         {
    6 z' b5 L: K& o2 \+ [. `" w9 n9 ]
  35.         menu->AddMenuItem(RemovetopNode,"Remove Top Node","delete");
    5 U: g) L8 P! e! b+ o2 Q- g! I
  36.         menu->AddMenuItem(CheckedMenuItem,"Checked Menu Item");) H% U) P3 h; r( {* K; y: v0 K4 E. P
  37.         menu->AddMenuItem(DefaultMenuItem,"Default Menu Item");8 I- i- |( h: T( P( u+ R7 N4 k
  38.         menu->AddSeperator();
    - e2 f! B1 [$ M
  39.         menu->AddMenuItem(DialogLaunchMenuItem,"DialogLaunchMenuItem");5 g& k, c$ B7 ~' I0 r. U0 D5 T2 S
  40.         menu->AddMenuItem(DisableMenuItem,"DisableMenuItem");& D$ J$ C4 ]: t8 W' ~4 I
  41.         menu->AddMenuItem(HiddenMenuItem,"HiddenMenuItem");
    : z5 R; D& w; r/ r. }9 e" d  W. E
  42.         menu->AddMenuItem(IconMenuItem,"IconMenuItem");( Q+ f. |$ h9 j6 j$ {& Z8 e4 g

  43. + E4 Q2 p- I+ j' U2 h  V# V( p
  44.         menu->SetItemDefault(DefaultMenuItem,true);$ f, N7 l; _9 h( D, ~6 H8 S& H
  45.         menu->SetItemChecked(CheckedMenuItem,true);* K& Y9 g) G7 d3 a) N
  46.         menu->SetItemDialogLaunching(DialogLaunchMenuItem,true);- B( L8 w/ O$ V6 x
  47.         menu->SetItemDisable(DisableMenuItem,true);2 t& R$ L5 f0 y% Y3 a4 @  ]
  48.         menu->SetItemHidden(HiddenMenuItem,true);& A* u! q5 y$ U
  49.         menu->SetItemIcon(IconMenuItem,"skeTCh");
    - K6 x& x$ A+ ~% U  q+ d
  50.         menu->SetItemText(RemovetopNode,"Remove Top Nodes");! P, G3 n3 ^* t" I" R

  51. " r$ q. D6 |" l! Q0 d  [
  52.         // submenu& I* q) {" v. [, D- Y( _" V: H8 `
  53.         submenu->AddMenuItem( SubMenuItem1,"Model Views");
    4 [, G" y1 {4 g% g% s
  54.         submenu->AddMenuItem( SubMenuItem2,"Cameras");# y+ R: i* K( G, s0 U3 t3 `$ A
  55.         submenu->AddMenuItem( SubMenuItem3,"Model History");
      I' f. a2 q1 Q
  56.         submenu->AddMenuItem( SubMenuItem4,"History Model");
    : d& h, U( T0 b/ h0 x$ W
  57. " p  k) v8 k( y$ w, a/ {/ j. X% v
  58.         menu->SetSubMenu(RemovetopNode,submenu);
    * P# d3 _$ z, n5 o

  59. # I& ^7 p3 C3 r" C
  60.         }
    " |  m9 W# M, |0 r
  61. else
    # |( Y. _9 x0 N3 l
  62.         {. j2 r6 g. V6 u6 d+ |  F7 i
  63.         if(node==modelhistoryNode)$ i7 R+ y5 M; j( E9 a
  64. 0 Z9 y% T5 R" q. k8 ~; f/ O
  65.         {2 P( X5 x! K  ^! \/ F# H  n
  66.         menu->AddMenuItem(modelhistoryfilter,"Filter");3 ]6 ?9 z: j' @9 l  q- M; c& V( |
  67.         // submenu
    8 H) G1 J0 z6 x: ]  s- Y0 b* t! i
  68.         submenu->AddMenuItem( filterSubMenuItem1,"Remove Item");
    $ E+ J" z, h' |% @7 p  F& |  D
  69.         submenu->AddMenuItem( filterSubMenuItem2,"Remove All But Item");
    + z6 Q4 _% ^8 F( A7 C+ Q6 c
  70.         menu->SetSubMenu(modelhistoryfilter,submenu);
    3 a3 \3 R* b! f+ l
  71.         }
    ' x/ ^! r$ n2 H7 }1 P
  72.         else if (node==historyModeNode)
    8 z( c3 z  V" _% c" z7 Y3 z. U
  73.         {
    / u; h* z7 H8 L* R9 G
  74.         menu->AddMenuItem(historymenu,"History Mode");
    ; V: Q; e  P+ p+ G6 V  P3 K0 r+ n
  75.         menu->AddMenuItem(nohistorymenu,"History-Free Mode");" N% r# `8 D4 C! u. S) r- y
  76.         menu->SetItemIcon(historymenu,"check");
    & H# x" `7 Y" Q. v: }
  77. }+ Q! V: M* w! S+ l- B

  78. % w/ z% {$ L& Z+ U
  79.         }
    8 @2 J8 S( V5 I, J) L% m& p7 e
  80. ( z# s" H' ]3 [0 C" A
  81.         tree_control0->SetMenu(menu);
    ! l" p! z8 O8 B5 E: h6 F

  82. - D7 Q7 H/ l2 |  X  t# u" H
  83.         delete menu;
    5 f7 B) K$ `: {/ F( ~, w! l
  84.         delete submenu;* \& @$ p' G7 w" G- ]9 M. m
  85. }/ ^2 S9 ?/ k/ v1 \) F4 u$ t+ l
复制代码
( b" L2 S- A% l5 A( T4 D

7 x! w+ k0 S$ r6 ?. B2 Q0 c+ }" X2 g, j7 X( x  `& j; B
NX二次开发treelist控件添加右键快捷菜单回调函数的简单例子6 Q" T+ @) s; Z. [8 [) V: B9 H

' \' c. s! u- h+ j: r( d( O* R4 {这里大概的模拟了下 部件导航器的功能!
, D4 i! l3 \& e0 W
1 N3 d5 ]* ^* [/ j/ P5 K" B* ^2 _/ ]" \# y3 H" [3 V

NX二次开发treelist控件

NX二次开发treelist控件

1 E+ E  D- _6 G7 |  j# S8 @' r4 }6 C8 ?; y  k

NX二次开发treelist控件

NX二次开发treelist控件
: v5 j7 V8 d5 x$ u' N* G' z$ D

9 I. k3 a& x4 \# @3 Q

NX二次开发treelist控件

NX二次开发treelist控件
4 Y) e. m: X" d: `9 I0 O

2 L2 J3 p6 g' k: m# K7 O0 X7 P! _2 N- ?. _4 j& d7 k+ o' s
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了