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

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

[复制链接]

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

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

admin 楼主

2014-2-12 19:10:15

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

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

x
  1. <p><div class="blockcode"><blockquote>
    5 Y. O/ d% X# I6 H* ?) N6 x

  2. 2 [' a4 n( k; {7 G2 e  @

  3. ! h; ?, w! |5 `3 h' p, v5 h
  4. enum MenuID
    4 b* g# j+ d9 N! F5 l6 B
  5. {
    2 D. I5 Y; }+ v  h
  6. RemovetopNode = 0,
    & u8 m8 B, n: E: L
  7. DeleteNode,
      B5 l0 [: m. O7 R  x4 A4 f* h
  8. CheckedMenuItem,  f( v- ^: h3 o, k5 G# I
  9. DefaultMenuItem,
    ( X2 P% b$ e: ]8 R3 ?: [2 _
  10. DialogLaunchMenuItem,
    & p  {$ ?  `9 @" N9 |1 Y
  11. DisableMenuItem," E% Y( p7 l: q
  12. HiddenMenuItem,
    8 u# n3 T( f( W1 `# C& g
  13. IconMenuItem,
    ; t3 S6 J+ C6 G8 _
  14. ! k" K" r( M" e9 X) n: W, S
  15. SubMenuItem1,% P' X% p8 W% E( W( V3 O
  16. SubMenuItem2,
    . Q, w* x6 V, Q: k5 k
  17. SubMenuItem3,, e: V% A7 w! ^1 h9 Z, A
  18. SubMenuItem4,
    ) h6 |: n+ }; n( e) ^
  19. 0 H! ?- b% M8 x+ S; v
  20.         historymenu,
    ) ~# l+ b' q# R- ^, n' }
  21.         nohistorymenu,
    " ?7 x9 U# {  F5 @( B7 Y

  22. 7 |0 l2 `' V: M* R& |$ W6 P) [- W
  23.         modelhistoryfilter,/ h5 E/ K0 U9 g* }  a
  24.         filterSubMenuItem1,; {6 ?2 _# W& Y5 P' T' c: h5 J. S" h# i
  25.         filterSubMenuItem2,5 W% p) |  {/ |2 r/ F3 R
  26. : }1 H) a# [; R  S) e; ^: q7 O
  27. # @5 \- r1 U4 O1 _& e
  28. };1 w1 `# _$ R3 {7 Y
  29. void tree::OnMenuCallback(NXOpen::BlockStyler::Tree *tree, NXOpen::BlockStyler::Node *node, int columnID )  J) O7 M/ E+ K' x3 N) w( r8 t& z. d
  30. {8 c8 G7 ?8 x! p2 e; A% p
  31.         TreeListMenu *menu= tree->CreateMenu();
    9 P! D$ R9 r9 I9 ], O, }/ G
  32.         TreeListMenu *submenu = tree->CreateMenu();
    % h- U' R) @) J- s6 ~2 p' s7 e9 ]
  33.         if(node==NULL)* z2 e, ?" T: R* f# K+ K
  34.         {
    9 i5 R# Z7 H7 Q2 E* {3 b
  35.         menu->AddMenuItem(RemovetopNode,"Remove Top Node","delete");
    5 C' F9 X0 `" |7 a3 l( u
  36.         menu->AddMenuItem(CheckedMenuItem,"Checked Menu Item");( R! C1 ]" R2 D
  37.         menu->AddMenuItem(DefaultMenuItem,"Default Menu Item");
    ! s5 D% h" @# J* Q5 \
  38.         menu->AddSeperator();3 `7 L8 d. Q- S9 e# ^7 I$ v. }2 ^
  39.         menu->AddMenuItem(DialogLaunchMenuItem,"DialogLaunchMenuItem");
    8 C8 M  m3 E! |" P7 o9 w8 i4 Y
  40.         menu->AddMenuItem(DisableMenuItem,"DisableMenuItem");
    1 P0 x, a) m9 L. t$ Q) d7 D
  41.         menu->AddMenuItem(HiddenMenuItem,"HiddenMenuItem");! x8 {$ H/ |1 \! M* F# K- \# y* i
  42.         menu->AddMenuItem(IconMenuItem,"IconMenuItem");
    $ R  {9 h) N, N. p5 L

  43. ! ?7 n/ v1 I2 T  ~3 N- L: Z
  44.         menu->SetItemDefault(DefaultMenuItem,true);2 {/ @. |' m$ E# C1 @1 u) s3 t
  45.         menu->SetItemChecked(CheckedMenuItem,true);4 O  G4 Z; H5 h- j5 z7 H. E7 J
  46.         menu->SetItemDialogLaunching(DialogLaunchMenuItem,true);
    " [) {7 A+ }, |, T
  47.         menu->SetItemDisable(DisableMenuItem,true);7 p* i: U4 w! I* ~' R6 z2 x
  48.         menu->SetItemHidden(HiddenMenuItem,true);& {7 b- ^. j  ?! J
  49.         menu->SetItemIcon(IconMenuItem,"skeTCh");
    ' P; L! |0 U- y1 G/ y
  50.         menu->SetItemText(RemovetopNode,"Remove Top Nodes");
    ( M: V; Q  \7 J5 t: p
  51.   V  L4 _: f  t9 v' F
  52.         // submenu! X5 c4 F% q* J0 W/ }
  53.         submenu->AddMenuItem( SubMenuItem1,"Model Views");
    0 H! P/ X& a" E$ ]+ R; u
  54.         submenu->AddMenuItem( SubMenuItem2,"Cameras");! [7 @3 M3 ?/ D& n
  55.         submenu->AddMenuItem( SubMenuItem3,"Model History");
    5 V8 z; A% |$ z. Y; Y+ P
  56.         submenu->AddMenuItem( SubMenuItem4,"History Model");* J3 U. c  h" o
  57. 0 K/ ^* a$ @$ c6 C+ b: @7 S3 I
  58.         menu->SetSubMenu(RemovetopNode,submenu);8 B0 P9 _; r+ N8 L; F  x

  59. , [0 x9 N8 F, n
  60.         }
    : g( k0 `/ }. ^3 G2 [8 n& L
  61. else* K* A. k, A2 K2 v
  62.         {
    7 ~' X' }: |, d6 [5 w& W' J8 k
  63.         if(node==modelhistoryNode)
    & ~4 k/ ]: E) l
  64. ' i0 G  y( u8 }6 o) H" x
  65.         {7 n2 a$ N( m# d7 o8 G. y$ w% i2 P
  66.         menu->AddMenuItem(modelhistoryfilter,"Filter");2 W- [6 R* U) ~4 L) b/ Q
  67.         // submenu/ W$ `  v5 ~* U1 h$ m8 h
  68.         submenu->AddMenuItem( filterSubMenuItem1,"Remove Item");$ `- J2 B5 _! B0 D2 M. b& ?% [
  69.         submenu->AddMenuItem( filterSubMenuItem2,"Remove All But Item");: i0 H* P* f& D5 A; R& j
  70.         menu->SetSubMenu(modelhistoryfilter,submenu);
    2 [% j& [8 K5 \: I- S; B6 F4 h
  71.         }# G& ]/ B- j8 l
  72.         else if (node==historyModeNode)
    2 w& n* t2 S; H$ {
  73.         {
    8 ^# d; X! W) f* R
  74.         menu->AddMenuItem(historymenu,"History Mode");( J3 `7 S  E7 N* f
  75.         menu->AddMenuItem(nohistorymenu,"History-Free Mode");
      _5 |2 x% h# ]$ `
  76.         menu->SetItemIcon(historymenu,"check");
    ; Y4 a5 P1 ?3 V
  77. }) H* I4 D3 d6 `' Y

  78. 2 _* g3 b- S: b) Y2 P
  79.         }
    # Z3 ], Z( a7 P( ^1 j  V; c9 A- S
  80. , r! Y% c1 [' j1 w* z. ^% v
  81.         tree_control0->SetMenu(menu);
    - q; ]  q" O; G2 e0 l) D

  82. " Y% s, @) _; U5 b  u0 a! A& ?
  83.         delete menu;
      w" J; C3 d, L- w4 O& X  B
  84.         delete submenu;
    ; x+ K# N  a9 z% p2 [2 y2 R* D1 ~
  85. }. Z, y% K7 c1 [1 |, P
复制代码
* F0 v( d% G  W& h+ W/ O+ ~. w& |

$ J' U" q& Z4 ^/ x. x/ j
( m8 d- o. S- qNX二次开发treelist控件添加右键快捷菜单回调函数的简单例子" \8 {9 J- Q! h+ t
8 j- k5 a9 c% l4 f1 Q
这里大概的模拟了下 部件导航器的功能!8 X9 y0 I2 n8 \& a) F# q

- ?6 m: W  m& o/ `
) L- h4 y. P. k  I7 O6 T4 |! c

NX二次开发treelist控件

NX二次开发treelist控件
: I; |. y" }+ v5 E3 Z

2 X4 B; t3 C. ?  L" Q2 R

NX二次开发treelist控件

NX二次开发treelist控件
% C5 {  K; ^, \! m$ F9 j9 N/ k7 H3 W# J8 S
6 ?: M' m/ z! C! n7 ^

NX二次开发treelist控件

NX二次开发treelist控件
: }2 D, @! v1 u4 o3 \8 X
' d! z' k5 H* ?( r

; ?2 L- q8 ]7 h& m& m
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了