PLM之家PLMHome-工业软件践行者

[二次开发源码] 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>" i1 O( }, `1 ^5 t  K' v
  2. 3 q  i4 U# y$ h, S+ g# q
  3. 8 O+ s( g4 U0 V7 y
  4. enum MenuID
    ) T( E# a3 U7 E9 ^' k' B7 t5 \: q+ P, ^
  5. {
    3 p& `9 c. v% f) w3 p( U) z
  6. RemovetopNode = 0,, Q! Z) R& E+ Q" y/ K
  7. DeleteNode,
    9 A  I# Y8 E1 W$ R! k, w; P
  8. CheckedMenuItem,
    ' B+ O* m7 P1 E* W4 ?2 z
  9. DefaultMenuItem,
    ) H9 P; k2 X9 e2 b& x# c0 _
  10. DialogLaunchMenuItem,# ]% w/ S! z7 D1 I- {- m. `
  11. DisableMenuItem,) e6 k1 z" O0 V5 K* P0 p* T
  12. HiddenMenuItem,
    8 U) m: [% S( n& Z: C8 K6 v+ N
  13. IconMenuItem,  w, I9 ^/ g, {9 h8 [! C. {
  14. 9 S. A: r+ O5 E( x, R+ ^& n
  15. SubMenuItem1,
    " q8 k# c* P  c; r
  16. SubMenuItem2,
    $ {1 ^9 Z5 T8 K$ [+ @0 y
  17. SubMenuItem3,
    ( ]  y( h; o2 r. H
  18. SubMenuItem4,
    ( q! q5 i0 W, U, r# i
  19. 5 [/ z( t. I& |/ `& j8 ~
  20.         historymenu,; X# `; Z& }/ `5 s/ k9 Q
  21.         nohistorymenu,
      G9 b2 T/ Z5 w# l* N5 e& N, q

  22. " [/ c" h1 B0 H4 u; L
  23.         modelhistoryfilter,' E/ x# @# _' _8 P
  24.         filterSubMenuItem1,
    : A/ H" W+ ?% ^  D4 {/ S+ P
  25.         filterSubMenuItem2,
    - ~, `/ `' @; N: z
  26. : f" ^1 ~# V& s4 R, d
  27. * g# d, W1 F6 |3 w9 w/ w) ^+ M; d
  28. };, O' v& O1 \# s# `* @, Y% _
  29. void tree::OnMenuCallback(NXOpen::BlockStyler::Tree *tree, NXOpen::BlockStyler::Node *node, int columnID )  S4 R7 z) E1 p9 t+ G# U1 H
  30. {
    0 I: G2 b0 O& S4 O$ H/ E# y( q
  31.         TreeListMenu *menu= tree->CreateMenu();8 G# {+ s5 Y, N9 ]
  32.         TreeListMenu *submenu = tree->CreateMenu();- o7 A5 Y- _; q& |& i) ?
  33.         if(node==NULL)- O. Y, F: t8 g
  34.         {) I% G  w: o( c/ _0 @  R3 I# ^3 |
  35.         menu->AddMenuItem(RemovetopNode,"Remove Top Node","delete");
    ( Q# C% |5 y4 K8 ]5 q
  36.         menu->AddMenuItem(CheckedMenuItem,"Checked Menu Item");* w7 E. o. W# `
  37.         menu->AddMenuItem(DefaultMenuItem,"Default Menu Item");/ |- F# W; F* ?; @2 [. {
  38.         menu->AddSeperator();* d: p* B2 Y; _3 G0 W/ v3 x
  39.         menu->AddMenuItem(DialogLaunchMenuItem,"DialogLaunchMenuItem");- n) l3 m" m* }: c
  40.         menu->AddMenuItem(DisableMenuItem,"DisableMenuItem");
    " x, h4 a: {) G2 v4 W6 e
  41.         menu->AddMenuItem(HiddenMenuItem,"HiddenMenuItem");& E, h9 x$ T' |: D/ l
  42.         menu->AddMenuItem(IconMenuItem,"IconMenuItem");
    , n) x. A- S5 h0 K: c9 {5 Y" C
  43. 0 c5 ?' U5 J( t0 h! C: N0 |
  44.         menu->SetItemDefault(DefaultMenuItem,true);& {) w9 O% n) n  J% j" W
  45.         menu->SetItemChecked(CheckedMenuItem,true);* ^' X- D$ Q6 [4 Q
  46.         menu->SetItemDialogLaunching(DialogLaunchMenuItem,true);
    , Q* w) g% B7 P( K$ ^6 W
  47.         menu->SetItemDisable(DisableMenuItem,true);; B& M" O, F  u& X
  48.         menu->SetItemHidden(HiddenMenuItem,true);
    2 J" q+ S# z( e" A
  49.         menu->SetItemIcon(IconMenuItem,"skeTCh");  }, W  e2 C# q* ^0 C
  50.         menu->SetItemText(RemovetopNode,"Remove Top Nodes");
    + p  u( h, F/ [, H
  51. " p7 Z: R% G" m1 x& C8 k) {8 @
  52.         // submenu" f& s  b' K% m% {
  53.         submenu->AddMenuItem( SubMenuItem1,"Model Views");% W7 J: y8 ~, Q# k; x
  54.         submenu->AddMenuItem( SubMenuItem2,"Cameras");
    ! w4 _7 r! E2 t4 M9 j1 Z9 Z" O
  55.         submenu->AddMenuItem( SubMenuItem3,"Model History");0 ]( K3 l  o" q
  56.         submenu->AddMenuItem( SubMenuItem4,"History Model");
    1 T7 V" t! d1 z6 M/ r0 c5 N% V
  57. $ N5 O3 ~! y& G  U$ q7 |
  58.         menu->SetSubMenu(RemovetopNode,submenu);
    # ]; o* L% s3 l# O2 b' v
  59. 8 n8 z; ^/ k8 g' Q9 Z/ y
  60.         }* O1 h$ I, v2 G
  61. else2 C9 z* p9 b/ |3 r- Z
  62.         {
    " i! h# N# m" k
  63.         if(node==modelhistoryNode)0 ~( l! A3 |3 O- {' R
  64. ' I; z$ I6 y% N( m# y( [
  65.         {
    : |1 J. p9 E8 s; j4 B; s
  66.         menu->AddMenuItem(modelhistoryfilter,"Filter");4 a' o  {; E) y: D0 K+ V. V8 _3 C
  67.         // submenu
    : [9 i3 c  R( z- i! a1 ~: `: @
  68.         submenu->AddMenuItem( filterSubMenuItem1,"Remove Item");
    2 B8 Q& A0 C  ]8 r* [
  69.         submenu->AddMenuItem( filterSubMenuItem2,"Remove All But Item");. b& F- b0 z* }( R) Q
  70.         menu->SetSubMenu(modelhistoryfilter,submenu);0 V$ o/ A6 _* W% ~
  71.         }& k3 Y  {" e& x& l
  72.         else if (node==historyModeNode)6 N. O$ b2 H- I" l; S
  73.         {
    * H2 j6 L) Y9 p( p1 Y
  74.         menu->AddMenuItem(historymenu,"History Mode");
    # A6 m" F) V' E% z0 q2 w( E
  75.         menu->AddMenuItem(nohistorymenu,"History-Free Mode");
    2 U# D8 A! W. k7 e1 [
  76.         menu->SetItemIcon(historymenu,"check");
    % @7 H  N. r% Q1 t
  77. }  h5 i# C& B; P% l2 V& P
  78. 0 \" P- B% z5 O! M( }: w3 _1 \2 a
  79.         }9 \$ P$ C3 R4 |4 {& \
  80. + |+ p. E7 m; L- `% j7 O
  81.         tree_control0->SetMenu(menu);
    # \7 A% h5 ~- i7 P) F* x- H

  82. 8 Q1 @( X) k( I! i, P
  83.         delete menu;4 e7 G& Q7 k" ]
  84.         delete submenu;: g8 a  `6 ^5 S* J# o
  85. }2 a9 k7 s  {' {, L0 `9 t
复制代码
/ q  t' S4 D# |6 y/ c) A. }/ j
8 e( t2 D6 b& o

3 j5 ~7 i( Z- [NX二次开发treelist控件添加右键快捷菜单回调函数的简单例子; e. a5 y, r$ f+ ?# n

$ U+ k/ C8 @8 i/ U这里大概的模拟了下 部件导航器的功能!# i4 n+ e' y& M0 n! N

) }4 E# l/ F. S
2 l5 }9 Q" [! F/ D/ w) h# f

NX二次开发treelist控件

NX二次开发treelist控件

! C6 H$ p7 @) ~1 ?2 h- X' @+ J5 r" J9 T2 }: w- Z

NX二次开发treelist控件

NX二次开发treelist控件
$ ]$ ]7 ^0 [) {4 |: _0 c" g$ {# Z

2 P( F9 g1 C' l& Q2 Q( s

NX二次开发treelist控件

NX二次开发treelist控件
! M- g7 l8 G3 P5 o8 N7 I; ?% ~' ?

  `5 x; R. ~1 F' _2 R4 a# c' _  z- p; E3 |0 u; @
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了