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

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

[复制链接]

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

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

admin 楼主

2014-2-12 19:10:15

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

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

x
  1. <p><div class="blockcode"><blockquote>$ F2 R# a+ P  S1 X) G

  2. * H- s, i  R8 q, v

  3. 4 m5 c/ ^$ Q5 e. y1 x6 l6 f: I1 P/ N
  4. enum MenuID3 }7 K4 z, k. _; v# D
  5. {! ~+ j- {4 `" e( W  V; |3 r) W  u
  6. RemovetopNode = 0,
    $ a& j( v8 \6 [! f' V
  7. DeleteNode,
    3 g( g7 Y9 S' H
  8. CheckedMenuItem,$ Z: j7 a5 N7 w
  9. DefaultMenuItem,% P6 }" `9 v  ]: e
  10. DialogLaunchMenuItem,- C% p" r2 L: v: f$ O5 E
  11. DisableMenuItem,, `5 T$ ?6 Q' S6 J
  12. HiddenMenuItem,
    : j  m0 Y/ D% N% G
  13. IconMenuItem,+ v; u/ v2 J0 u7 S

  14. " ~8 L1 @3 }- P3 ]% l
  15. SubMenuItem1,& O. J* [8 ^6 K" ^
  16. SubMenuItem2,
    3 v' z# D. w8 C2 S8 r9 f: I' g
  17. SubMenuItem3,2 X8 F+ w, o( G  s" x: h
  18. SubMenuItem4,$ j  H( x  O' q1 M/ W' n4 o7 [
  19. " F0 p* g7 _" `4 a
  20.         historymenu,
    : y! n; V' Y. c- t
  21.         nohistorymenu,
    " L) a2 A% [, d: J# e1 z1 A# _' _
  22. 3 s( D. [, S9 g% U2 g
  23.         modelhistoryfilter,
    - G2 w5 [. H& o! a
  24.         filterSubMenuItem1,& t/ ~* o! b) c3 H
  25.         filterSubMenuItem2,
    : I" M1 c) B7 l* c% h: s; e
  26. ! c! Z2 T% [5 r: R* C; v0 g; p

  27. " r+ `% ]& \5 u% K6 ~
  28. };
    4 H  k1 ?% v! \! x) j/ q
  29. void tree::OnMenuCallback(NXOpen::BlockStyler::Tree *tree, NXOpen::BlockStyler::Node *node, int columnID )
    + j& a# q3 o, ~# V: }. m
  30. {
    6 F+ M7 d2 q  e
  31.         TreeListMenu *menu= tree->CreateMenu();
    " E' i8 u9 o$ G# n
  32.         TreeListMenu *submenu = tree->CreateMenu();
    . s: m$ v3 z* N0 r
  33.         if(node==NULL)  h% w2 r2 l; n* k& `1 Y! ?7 f
  34.         {
    2 i* j+ a  u! f$ ]6 m2 v$ F% E& i
  35.         menu->AddMenuItem(RemovetopNode,"Remove Top Node","delete");
    % q6 D. ]( m$ n8 z
  36.         menu->AddMenuItem(CheckedMenuItem,"Checked Menu Item");' C) L* j7 F" v& r1 I; x
  37.         menu->AddMenuItem(DefaultMenuItem,"Default Menu Item");2 b: K  K% O. \4 E( U# Z5 x8 H
  38.         menu->AddSeperator();7 e6 K9 _0 f2 A
  39.         menu->AddMenuItem(DialogLaunchMenuItem,"DialogLaunchMenuItem");
      K" M! e, c( b* w2 Q: v
  40.         menu->AddMenuItem(DisableMenuItem,"DisableMenuItem");
    - K, ~* x- o; g+ f2 Z
  41.         menu->AddMenuItem(HiddenMenuItem,"HiddenMenuItem");
    9 w& X3 k- y$ x7 x7 V
  42.         menu->AddMenuItem(IconMenuItem,"IconMenuItem");
    + Q  M& L" j# s) |0 u( h
  43. 0 [, p+ R5 V- b. [
  44.         menu->SetItemDefault(DefaultMenuItem,true);7 h; R5 v/ {3 t; b3 r
  45.         menu->SetItemChecked(CheckedMenuItem,true);
    ( l! @* [+ A' v! s4 ?8 B; ]: S/ R/ `7 ]
  46.         menu->SetItemDialogLaunching(DialogLaunchMenuItem,true);
    8 B- M2 Y/ Z) j' [9 G
  47.         menu->SetItemDisable(DisableMenuItem,true);& p0 E" X5 i$ y; D& Q
  48.         menu->SetItemHidden(HiddenMenuItem,true);5 G0 r" C) K+ o/ h" b
  49.         menu->SetItemIcon(IconMenuItem,"skeTCh");
    . B* h' \1 b% Z+ b5 U7 k1 y2 [
  50.         menu->SetItemText(RemovetopNode,"Remove Top Nodes");& `6 z+ `+ ]" ]
  51. " g$ I  I$ Q  r( h" F$ e
  52.         // submenu3 L/ J- n! E1 _& v  h! h% H
  53.         submenu->AddMenuItem( SubMenuItem1,"Model Views");
    4 a$ ^9 N9 m+ o, ]
  54.         submenu->AddMenuItem( SubMenuItem2,"Cameras");
    ) _! q# F( \6 K& w) r' }
  55.         submenu->AddMenuItem( SubMenuItem3,"Model History");& @* P  I1 P: F; s, Z/ w5 [' B, Z# I
  56.         submenu->AddMenuItem( SubMenuItem4,"History Model");
    ) c$ X# ?! }8 }8 E% [
  57. , d) [7 |! G$ L7 s
  58.         menu->SetSubMenu(RemovetopNode,submenu);; U* o) i- h  P5 ?' [! E

  59. ) q/ n- R, U0 s+ I' S4 }( d# W& `! O. \
  60.         }
    $ z2 A) D3 E2 @
  61. else! s7 b: `) i9 H0 c" L3 j
  62.         {
      _& I6 J8 l+ d  A
  63.         if(node==modelhistoryNode)' R& c9 Z) @5 F" W) G; b! a

  64. $ U  R) y, V- F
  65.         {' E1 w, T4 V. v, V1 m' E* }& |* D) \
  66.         menu->AddMenuItem(modelhistoryfilter,"Filter");
    ! O7 L2 x+ q+ b4 s
  67.         // submenu
    * s! L. M: J" P2 k' P! F) E8 O
  68.         submenu->AddMenuItem( filterSubMenuItem1,"Remove Item");1 B" ^8 W6 S, C1 \
  69.         submenu->AddMenuItem( filterSubMenuItem2,"Remove All But Item");
    5 j, A4 g; ]& X
  70.         menu->SetSubMenu(modelhistoryfilter,submenu);& ~) J) r, N* J
  71.         }
    0 p( D9 v3 H% X0 e2 [5 \7 `; ?
  72.         else if (node==historyModeNode)
    4 W% e" S1 \( u  Y
  73.         {( [+ o$ [$ w& ^# q3 y: S$ Y# |, z
  74.         menu->AddMenuItem(historymenu,"History Mode");
    5 g" C  O% b1 A  C
  75.         menu->AddMenuItem(nohistorymenu,"History-Free Mode");( K% c& k3 f' X
  76.         menu->SetItemIcon(historymenu,"check");& P& m" f) w3 s# U0 c
  77. }& p  G4 y9 v' q& \; X5 b: _
  78. 8 k- f6 l; [# E7 E# b9 ]
  79.         }
    6 x  F' ?  o6 ?

  80. 6 \- f+ S8 _( a- {2 ]+ A- P1 c* l
  81.         tree_control0->SetMenu(menu);
    $ G# G7 L; U4 l$ _: O
  82. 5 z& `' v! h! d- f$ L/ d
  83.         delete menu;
    . Q! F5 Z) s: C( ~$ m1 v6 J0 s- U/ J
  84.         delete submenu;
    * l" J7 Y; g8 ^+ Y8 p3 F
  85. }
    6 W+ l* R+ r% g# R6 R
复制代码

2 M1 F4 K2 Q. m1 Z; k* H2 F( s
4 b/ f$ g" m) l+ r5 t9 S
# K0 S/ u: d2 b& Y" vNX二次开发treelist控件添加右键快捷菜单回调函数的简单例子4 Y' O! f' Y: r" V+ H- a

3 B9 p9 o$ B9 ~  p2 O, n这里大概的模拟了下 部件导航器的功能!
# k' J' B5 x% R+ u/ R1 N1 J# h; O; z0 G1 U
9 v8 E! I+ ^) ?3 P

NX二次开发treelist控件

NX二次开发treelist控件

9 C, B5 v) }7 \8 L4 d1 {8 ^# \0 R7 V- N# ]4 z5 \/ k

NX二次开发treelist控件

NX二次开发treelist控件
' n$ j! [5 |6 B9 s1 v* l

0 n7 d" V, R! H4 Y% O' b* B

NX二次开发treelist控件

NX二次开发treelist控件

% h2 Q8 t$ w9 R) m6 K  T+ b
4 @4 p* x5 s2 m! N9 J- H4 w' h3 I$ V$ K1 ?1 Z3 G8 F5 ^7 g
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了