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

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

[复制链接]

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

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

admin 楼主

2014-2-12 19:10:15

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

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

x
  1. <p><div class="blockcode"><blockquote>; T4 c$ W7 c/ u0 O# s

  2. % T' R4 b$ i- I' a6 D  h
  3.   n0 C% E5 i+ H0 }- ~: ^: Y3 U7 |
  4. enum MenuID
    ( j* X5 P- `/ _) F
  5. {
    6 I" X. R+ V# H' ?2 G3 F. i; `: C8 ~
  6. RemovetopNode = 0,9 h, j5 t* r  i3 `
  7. DeleteNode,5 a; V1 G  L( U
  8. CheckedMenuItem,9 {5 M: a& v  J1 _$ s
  9. DefaultMenuItem,
    ! A; P& N3 M* J% Y/ L) }
  10. DialogLaunchMenuItem,
    , E" k4 x$ ^) Y' |- I
  11. DisableMenuItem,
    & [) C) D# v5 }9 E
  12. HiddenMenuItem,! f" m1 l( i6 [" S" ^  [
  13. IconMenuItem,
    - C) ]+ G7 y' w+ ?
  14. # r4 ^+ J) o9 U5 A. ~
  15. SubMenuItem1,# |$ p+ p. D9 `% _; Q3 h9 ~* k
  16. SubMenuItem2,  G" T4 {( A  _* ]- a( O3 j+ S
  17. SubMenuItem3,
    $ T- `  m" x; Y" n: o7 i0 j( w$ M
  18. SubMenuItem4,
    6 P- l( \% _  M! q  Z

  19. - O; W: |+ l! f/ y- c: j1 s
  20.         historymenu,
    ! M* m1 n* o# t" `4 _
  21.         nohistorymenu,; X) P0 W/ d# D, w$ e
  22. ; L0 p* X+ R- t& m. L5 E* Z
  23.         modelhistoryfilter,' E+ m# ^4 S( N6 |( t! M  T
  24.         filterSubMenuItem1,' w9 R& B9 f1 `3 e) |& I
  25.         filterSubMenuItem2,
    $ e2 V* v9 a) Y, L
  26. 5 s; e2 F6 t, ?4 J) f- }

  27. % d$ @( L/ m" p1 m
  28. };" a( R- y* G* C- _/ r1 `: i: x' p
  29. void tree::OnMenuCallback(NXOpen::BlockStyler::Tree *tree, NXOpen::BlockStyler::Node *node, int columnID )
    + D/ H9 Z* D1 c; L6 ~, s
  30. {
    $ H  j- ~+ D  f  A3 ]" o
  31.         TreeListMenu *menu= tree->CreateMenu();
    $ w5 [" S7 A; m, R& a2 h
  32.         TreeListMenu *submenu = tree->CreateMenu();7 }3 A! j* O  _" ]/ \3 z
  33.         if(node==NULL)
    1 P: `3 R% K3 o! K" |7 k
  34.         {
    4 c' B) H- T* k5 j6 ~' H
  35.         menu->AddMenuItem(RemovetopNode,"Remove Top Node","delete");5 J* s' ]" \- a' S: S- j
  36.         menu->AddMenuItem(CheckedMenuItem,"Checked Menu Item");
    , ?& |% R: a/ Z9 ~: ~
  37.         menu->AddMenuItem(DefaultMenuItem,"Default Menu Item");
    % U' U( w' s+ Q
  38.         menu->AddSeperator();+ g0 B; i' x$ Z8 Y- v) O' b+ R3 w9 R7 P
  39.         menu->AddMenuItem(DialogLaunchMenuItem,"DialogLaunchMenuItem");7 R6 I9 ?6 R: A0 z$ h( I! N
  40.         menu->AddMenuItem(DisableMenuItem,"DisableMenuItem");, h# @3 H7 h- |2 e9 a. s
  41.         menu->AddMenuItem(HiddenMenuItem,"HiddenMenuItem");( a2 O1 ~) _5 k) F  t: a- Y  r! |
  42.         menu->AddMenuItem(IconMenuItem,"IconMenuItem");
    % W7 Z1 }! T1 G) ~6 v! ^0 F

  43.   N4 n' x" Y, @! G" {
  44.         menu->SetItemDefault(DefaultMenuItem,true);9 w- t# I0 s% M( ?. G3 ?
  45.         menu->SetItemChecked(CheckedMenuItem,true);# D. s" e3 D, X' z0 Y" _
  46.         menu->SetItemDialogLaunching(DialogLaunchMenuItem,true);
    / R& ^/ \4 `% Q/ B
  47.         menu->SetItemDisable(DisableMenuItem,true);6 Z, f+ @/ G) Q. d( Z' n% ^5 a
  48.         menu->SetItemHidden(HiddenMenuItem,true);4 E7 l. L. V5 H7 E
  49.         menu->SetItemIcon(IconMenuItem,"skeTCh");5 v$ G* d1 b( V- [4 K
  50.         menu->SetItemText(RemovetopNode,"Remove Top Nodes");
    ' g! N, z- V. f; @0 U4 E3 U7 X/ u
  51. & \; @8 Y  H) N* U
  52.         // submenu# c+ A3 [- n# {: {' A$ G
  53.         submenu->AddMenuItem( SubMenuItem1,"Model Views");
    ! V% v2 A$ R7 I8 n: ^
  54.         submenu->AddMenuItem( SubMenuItem2,"Cameras");' ~3 k/ o0 N& h$ r. Z
  55.         submenu->AddMenuItem( SubMenuItem3,"Model History");
    9 y, f9 Y9 f2 q" L8 f
  56.         submenu->AddMenuItem( SubMenuItem4,"History Model");+ W2 X& b7 a5 i- q
  57. 2 ~9 F- b7 p- e/ }1 p
  58.         menu->SetSubMenu(RemovetopNode,submenu);
    ! L0 L+ v5 t" W$ ~3 b$ Q, a
  59. . g, ^9 a' v6 t" s- e% L
  60.         }: }# a2 T3 l7 B. M; D" Q4 E" O
  61. else3 X8 j; y7 V& e. l* [
  62.         {
    " ?) T' x# K) @) r- H. t% R
  63.         if(node==modelhistoryNode)
    * Q: d) u- J/ `1 {1 q9 i

  64. ( _& q1 F  f) m2 \  `
  65.         {! H) @' Y1 w3 u% V
  66.         menu->AddMenuItem(modelhistoryfilter,"Filter");
    / E1 {4 _+ t! k$ [
  67.         // submenu
    . T' c" m& B- y
  68.         submenu->AddMenuItem( filterSubMenuItem1,"Remove Item");
    . N" g3 {; A1 C& S8 U
  69.         submenu->AddMenuItem( filterSubMenuItem2,"Remove All But Item");
    ! m; {$ Y! z: \
  70.         menu->SetSubMenu(modelhistoryfilter,submenu);
    ' |+ g; m. ~4 h* R5 B+ Z# V
  71.         }. j* K0 @. G7 a7 F! l- d
  72.         else if (node==historyModeNode)
    : G: a4 o, Z% N8 I/ ]% M$ _
  73.         {5 U' r- O" o: w' D' ^1 J7 \
  74.         menu->AddMenuItem(historymenu,"History Mode");
    ; t  I) g# a+ U% n5 C, G2 J
  75.         menu->AddMenuItem(nohistorymenu,"History-Free Mode");& l, ]! B5 x4 Y
  76.         menu->SetItemIcon(historymenu,"check");+ X) P: F- I  h2 H
  77. }5 M' t6 [% ]7 T3 P( u) ?$ l' t7 {
  78. , O% Z# T, u4 b( v
  79.         }
    ; i% I9 m; A9 q8 ?% _0 w2 a1 \

  80. / U- l4 f5 E. u
  81.         tree_control0->SetMenu(menu);
    9 c" V  @$ I4 Z) m1 ~

  82. 7 m! P/ \; @- X7 ?
  83.         delete menu;
    & v% f  O6 M6 A3 @( B3 X& }% L( t! P* H
  84.         delete submenu;
    ( B2 A1 c% w) \: J. f' N6 f
  85. }
    6 c" B4 E" I2 {& h
复制代码

" y6 t( S; T# ~, B9 S! g( n% R
( T( a0 ~, m: i3 X
1 b2 o+ A; n# s3 }: O9 |- ?* f' h3 ENX二次开发treelist控件添加右键快捷菜单回调函数的简单例子
0 c( r0 `. I/ k& O- E% F
# C" M! A3 V; ^. s这里大概的模拟了下 部件导航器的功能!
  B3 k. A/ f' x$ n" l# b, x0 y+ {, t2 K% Q5 y& G# N

, p' I/ {; k! X9 e

NX二次开发treelist控件

NX二次开发treelist控件
4 t: G3 w, v- H
; N9 R8 p7 T, W1 Q: B+ `9 [

NX二次开发treelist控件

NX二次开发treelist控件
4 f% L0 q- W5 l) P/ z; d6 ~
7 h6 z0 o. G1 }* w9 X( m

NX二次开发treelist控件

NX二次开发treelist控件
7 ]# {) m. T1 a# U3 N7 R0 w( _

: O1 S% m5 P0 E5 Y& m: j+ f
: `/ x3 g- i8 r3 {) n4 S: A- h
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了