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

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

[复制链接]

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

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

admin 楼主

2014-2-12 19:10:15

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

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

x
  1. <p><div class="blockcode"><blockquote>
    7 S0 q( ], z% M( z1 |2 p3 d
  2. $ z2 i0 `- t4 f3 |4 n2 \3 G) Z

  3. 7 W0 S' k# K5 E) l3 K# I
  4. enum MenuID8 e8 T5 s, g: |0 r
  5. {
    # A  X( T7 |5 ]( e
  6. RemovetopNode = 0,
    1 \0 X% P2 D3 l
  7. DeleteNode,
    9 d3 O1 L% v2 L2 R9 a
  8. CheckedMenuItem,
    ; K0 q( L/ a0 g+ A3 r
  9. DefaultMenuItem,$ [" d# A1 P% `8 j) s
  10. DialogLaunchMenuItem,: k% m$ F* l& h
  11. DisableMenuItem,
    9 c; H4 @1 p1 d& }: g
  12. HiddenMenuItem,+ ]: W2 p9 O# e" w2 n, U7 r
  13. IconMenuItem,6 W/ ]( Y) F5 _/ l: P/ A
  14. $ c3 B* h" G0 r3 N0 `5 v2 \- H0 ?* v
  15. SubMenuItem1,: j8 M6 H; G; @# X9 F- x6 o
  16. SubMenuItem2,
    - L* O8 i' X; U
  17. SubMenuItem3,7 p1 _1 S* G8 w5 S) L% r6 ?
  18. SubMenuItem4,& @& a5 R  `; S+ ]+ V

  19. $ s  @- p: `/ g4 I/ g$ _/ P  I& W
  20.         historymenu,
    ! L' Z. u4 n! C* _
  21.         nohistorymenu,4 S% O9 m8 H% Y3 U1 m/ C0 c
  22. ! M# D- |* ~( p& z3 A8 v. n( x' r
  23.         modelhistoryfilter,
    - ~6 S3 x, E5 G6 Z: W( Y7 j5 ^
  24.         filterSubMenuItem1,
    ( d9 i0 t/ W; Y- {5 \7 x5 d
  25.         filterSubMenuItem2,
    7 [0 Q; w# p8 ]

  26. ; L3 s0 G. b1 D; @
  27. 2 E* w& F2 y! b; P- ]
  28. };
    # @4 b) Y1 J% j, n+ Q
  29. void tree::OnMenuCallback(NXOpen::BlockStyler::Tree *tree, NXOpen::BlockStyler::Node *node, int columnID ); y# D  R+ o' J% ^1 o6 m6 k5 z( P6 Q
  30. {5 U: L8 k: v4 C; r
  31.         TreeListMenu *menu= tree->CreateMenu();* i9 X: m0 N/ ]' q2 u1 p
  32.         TreeListMenu *submenu = tree->CreateMenu();( C+ k- E/ c0 E, Y
  33.         if(node==NULL)
    ' I8 i# g6 s6 W$ r8 r0 v
  34.         {" V+ ?. K7 H+ y- i: N
  35.         menu->AddMenuItem(RemovetopNode,"Remove Top Node","delete");
    3 q3 I; v! L) }5 l
  36.         menu->AddMenuItem(CheckedMenuItem,"Checked Menu Item");
    ( e+ }8 T7 j# L
  37.         menu->AddMenuItem(DefaultMenuItem,"Default Menu Item");* I7 [) @; {( d; g* _0 j. o9 v) `
  38.         menu->AddSeperator();6 b: {0 p1 }) k( m2 p! D7 R& g
  39.         menu->AddMenuItem(DialogLaunchMenuItem,"DialogLaunchMenuItem");7 g1 y3 B- \% l& o1 f: ?, X5 \  R7 `
  40.         menu->AddMenuItem(DisableMenuItem,"DisableMenuItem");
    - V6 b0 E( K( D4 x$ F
  41.         menu->AddMenuItem(HiddenMenuItem,"HiddenMenuItem");
    : c0 x1 G0 W( `, H8 N; S$ R
  42.         menu->AddMenuItem(IconMenuItem,"IconMenuItem");- m7 `( ]2 r3 S7 x
  43. 7 T1 k" n6 i' b. U
  44.         menu->SetItemDefault(DefaultMenuItem,true);. ~4 h6 }9 O% j' e+ B4 @7 a1 S. R
  45.         menu->SetItemChecked(CheckedMenuItem,true);4 [- H8 k0 ?1 i& `5 y
  46.         menu->SetItemDialogLaunching(DialogLaunchMenuItem,true);
    ) T! X; z2 C* v9 n& n, C
  47.         menu->SetItemDisable(DisableMenuItem,true);
    , r0 S: f1 B) ~9 V# {$ p
  48.         menu->SetItemHidden(HiddenMenuItem,true);
    . ~3 z' k$ B4 j7 N  O
  49.         menu->SetItemIcon(IconMenuItem,"skeTCh");, E. y( p4 e- _2 @$ p3 \/ w
  50.         menu->SetItemText(RemovetopNode,"Remove Top Nodes");
    , _7 a4 h/ Y' X& l- p# p
  51. * m; g6 b# R& ~) D# b
  52.         // submenu( B/ X8 b% K3 ?# Q
  53.         submenu->AddMenuItem( SubMenuItem1,"Model Views");
    ' X8 Q/ r. w- i% y; P: z) T5 j0 ~
  54.         submenu->AddMenuItem( SubMenuItem2,"Cameras");
    & v# q% X7 ]1 r- x0 o% F! [
  55.         submenu->AddMenuItem( SubMenuItem3,"Model History");3 g0 [# g$ M8 R, I- C/ N4 s# l: Q
  56.         submenu->AddMenuItem( SubMenuItem4,"History Model");* D; ?; p& G% c- H3 {' Y3 u- G, V
  57. ' r9 R2 l9 [6 {- T- R
  58.         menu->SetSubMenu(RemovetopNode,submenu);) |+ O; E4 ]( ?$ X5 _! E( G+ v
  59. 9 b6 O" i" {% P. G' K8 R
  60.         }
    2 k' l+ \: w' q
  61. else" ?# n* Z- [4 W" ^: l/ g
  62.         {
    8 D1 S. `, f) y( R# \5 I: w4 r
  63.         if(node==modelhistoryNode)
    ' I2 J8 w+ B6 D. a; K4 |: v

  64. 9 B+ F1 h, i' g( s' n2 q
  65.         {
    * s' f: t7 W" f, T2 b7 j& z6 P5 z7 |
  66.         menu->AddMenuItem(modelhistoryfilter,"Filter");
    ! ~" ~5 G+ s7 [. N3 |8 k) Y
  67.         // submenu+ Z/ }+ }: }0 C6 K+ {' s& K
  68.         submenu->AddMenuItem( filterSubMenuItem1,"Remove Item");! S2 z* `* D* \$ ?# b
  69.         submenu->AddMenuItem( filterSubMenuItem2,"Remove All But Item");
    ! D. E( c) h6 {' @/ f4 I: p
  70.         menu->SetSubMenu(modelhistoryfilter,submenu);
    , t' f0 l# g" g$ j3 V# M
  71.         }
    9 B& s; d+ ?) h8 k- ]
  72.         else if (node==historyModeNode)
    % Q2 F9 A+ T) A: f' y
  73.         {! |( {3 X6 a# D& B* r# X' u' o
  74.         menu->AddMenuItem(historymenu,"History Mode");* K' B; B; @6 w$ \4 B- d5 A
  75.         menu->AddMenuItem(nohistorymenu,"History-Free Mode");
    3 V9 V4 w3 o5 A7 T
  76.         menu->SetItemIcon(historymenu,"check");
    / Q( a" p" f& Q( Q) k* J
  77. }
    . W7 Y; n; {- z
  78. $ Q. H. D2 ]+ t
  79.         }
    . t; Q# y, K: E/ ^3 a' y  Z

  80. 8 @. L+ W4 j2 k
  81.         tree_control0->SetMenu(menu);
    1 z$ ~/ J( m4 f8 e5 J: r  H

  82. " d: y6 `# K( Z% ^
  83.         delete menu;
    ) m/ b( T8 h$ w- V, [. }$ A
  84.         delete submenu;$ [3 L! `+ R" j# N8 S
  85. }
    " r+ n" w$ q, u6 L* v
复制代码
7 }$ i$ J9 i( L' |' o, S" V

( U# }' ?3 p, X: x& b* M
  z4 \# d6 h9 \; ONX二次开发treelist控件添加右键快捷菜单回调函数的简单例子
+ C5 i( I" S# G: B) o3 _7 c: V2 c$ l- Q/ V* ?  P/ L! ?8 o
这里大概的模拟了下 部件导航器的功能!- {  h- v# Z- s$ |$ W

% @& Q1 |) P8 S- \3 b: t/ g
9 M/ E6 p+ O/ R% P& T( V

NX二次开发treelist控件

NX二次开发treelist控件

( C, s1 E& _& i" }
% R) X! [) M* y1 i

NX二次开发treelist控件

NX二次开发treelist控件

* S5 r  _! E6 \5 W& K3 j
9 |, g0 C; B! f+ s/ g' u4 q9 O" U

NX二次开发treelist控件

NX二次开发treelist控件

+ n4 C- G. Q+ l: L+ Z8 |
' w2 Q8 g) ^# Z
# g( `4 T8 h6 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二次开发专题模块培训报名开始啦

    我知道了