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

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

[复制链接]

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

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

admin 楼主

2014-2-12 19:10:15

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

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

x
  1. <p><div class="blockcode"><blockquote>
    % `$ ?2 O  h" h$ J0 _+ b1 V+ C

  2. . w1 E- V0 ]2 @4 T8 i

  3. + B3 S. S0 t5 w% G9 ]& E0 g6 p
  4. enum MenuID- ^: c- I8 o0 A4 g; X% ^
  5. {
    2 f$ \! k. s, C( O2 a  j) T( N
  6. RemovetopNode = 0,
    + o9 C+ E8 q3 H& t& D) D' f1 m
  7. DeleteNode,
    % J( J$ ]$ x; H4 A( D& p- L7 I
  8. CheckedMenuItem,! U- C( j7 G+ w9 F% G! K8 L6 i
  9. DefaultMenuItem,$ @! N/ [$ [2 _6 w8 f% o1 D* U4 e
  10. DialogLaunchMenuItem,( N' ^/ r! M- L
  11. DisableMenuItem,
    ; b: _9 ]' b0 C1 v
  12. HiddenMenuItem,
    9 H0 @5 F. C2 W5 y
  13. IconMenuItem,; g$ d' ], l# r7 i9 F5 s

  14. 3 H+ v, l% K* k! n# _7 }- X, ?
  15. SubMenuItem1,. U! j* W! S0 c" V9 `
  16. SubMenuItem2,
    ; ]# l+ R: m: d* ^$ S. M2 N" B
  17. SubMenuItem3,6 y' O1 Y5 v9 h
  18. SubMenuItem4,
    + g# g$ b4 M! _; B" i
  19. 6 q$ M7 K- O- ?" R. ~
  20.         historymenu,: J# \; E( M7 s% K" d
  21.         nohistorymenu,
      \" f- S$ [" P1 @# d7 a3 n

  22. $ H. T* b9 r: |. c) L( H4 P+ p
  23.         modelhistoryfilter,( S; [. y  f" e6 E
  24.         filterSubMenuItem1,- R1 I$ N8 m- `
  25.         filterSubMenuItem2,
    , h3 V' ]" m7 d

  26. 4 V7 X5 Z$ c; k

  27. 5 D! A( c- `( o4 j
  28. };
    $ @4 u- \' i$ L
  29. void tree::OnMenuCallback(NXOpen::BlockStyler::Tree *tree, NXOpen::BlockStyler::Node *node, int columnID )9 N3 F) }1 X6 O6 G
  30. {
    ; o  g0 E- ^9 \. U6 U' y
  31.         TreeListMenu *menu= tree->CreateMenu();# W% Q5 z  t" f) L% Z- e3 d
  32.         TreeListMenu *submenu = tree->CreateMenu();
      }. _6 l! l2 O  }+ T
  33.         if(node==NULL)* V- g& @- r/ V# B
  34.         {
    ) c  f3 H; Q) q& ?2 s
  35.         menu->AddMenuItem(RemovetopNode,"Remove Top Node","delete");
    : `6 o9 t5 t/ j% c
  36.         menu->AddMenuItem(CheckedMenuItem,"Checked Menu Item");
    , `# x: B0 U: l! Y1 D! ~
  37.         menu->AddMenuItem(DefaultMenuItem,"Default Menu Item");' J# E- \! H; [. P' T8 {0 B% W
  38.         menu->AddSeperator();
    6 M2 D% Z  V& l, H: X
  39.         menu->AddMenuItem(DialogLaunchMenuItem,"DialogLaunchMenuItem");
    % O/ u: ^- j/ L6 H% I* e! ~5 @8 {
  40.         menu->AddMenuItem(DisableMenuItem,"DisableMenuItem");# e/ d- h7 {- B! h! h, G9 ^* z
  41.         menu->AddMenuItem(HiddenMenuItem,"HiddenMenuItem");
    . T; k4 X5 c2 g- b+ E6 k% V
  42.         menu->AddMenuItem(IconMenuItem,"IconMenuItem");0 e/ E" d. o9 c+ {* R- W7 Q7 J0 S

  43.   Q1 c8 s3 R4 t8 |6 I8 D" ]4 c5 O+ C
  44.         menu->SetItemDefault(DefaultMenuItem,true);1 T/ f; r# |3 L. `+ Q5 r
  45.         menu->SetItemChecked(CheckedMenuItem,true);
    4 x9 w9 F& f) j- C' B
  46.         menu->SetItemDialogLaunching(DialogLaunchMenuItem,true);% p" R- v: B  |( \( J
  47.         menu->SetItemDisable(DisableMenuItem,true);
    / e7 U" i$ u0 I
  48.         menu->SetItemHidden(HiddenMenuItem,true);
    / b- T, s9 ~% y* L/ D/ e8 k
  49.         menu->SetItemIcon(IconMenuItem,"skeTCh");
    5 @: ?! ?. v' A( o9 Y, ^% W, j
  50.         menu->SetItemText(RemovetopNode,"Remove Top Nodes");  V+ i$ S9 A( O/ V, }' m9 b3 f9 ]

  51. 1 i+ t  W* G' m. x0 F. _
  52.         // submenu% u: x. r. ~' h$ C' L, e
  53.         submenu->AddMenuItem( SubMenuItem1,"Model Views");
    7 j$ a+ o( S3 E5 m. [
  54.         submenu->AddMenuItem( SubMenuItem2,"Cameras");
    % [: [& ^+ T: y0 [& O
  55.         submenu->AddMenuItem( SubMenuItem3,"Model History");3 `# r/ n/ @( N( g- `4 [7 @9 V& n( P
  56.         submenu->AddMenuItem( SubMenuItem4,"History Model");* Q3 `9 B3 n- k! A( `

  57. - b! D, J' q. C0 [3 U
  58.         menu->SetSubMenu(RemovetopNode,submenu);
    - W% j, |2 l  M/ f- L! J- W

  59. ) Y8 E; `, _- i/ R- |
  60.         }
    , C5 m0 w2 D7 V: ?0 f
  61. else7 Z$ G5 z1 f- E* r" i7 M. o
  62.         {
    ) K3 H/ W/ L- j8 Y* X
  63.         if(node==modelhistoryNode)0 _$ t  u/ v8 x8 p" H" M4 {
  64. $ L% O1 R3 ]/ B  E$ ^) h8 {5 t& p& [
  65.         {$ `% V: M2 I# x
  66.         menu->AddMenuItem(modelhistoryfilter,"Filter");
    ( {, U2 O, k' B6 }7 q
  67.         // submenu( t% O/ g! B5 d4 P+ m
  68.         submenu->AddMenuItem( filterSubMenuItem1,"Remove Item");, u& b! W% W% }& C( {' F# s
  69.         submenu->AddMenuItem( filterSubMenuItem2,"Remove All But Item");
    1 r; K$ h( W( M, U; J6 `8 e
  70.         menu->SetSubMenu(modelhistoryfilter,submenu);
    2 z  h' p0 e1 n9 a6 Q
  71.         }8 D! n6 |$ i7 r
  72.         else if (node==historyModeNode)+ Q; e4 |! R" k6 N* D+ f
  73.         {
    4 S; i% S( z/ W( o) g; m% y! R1 O1 F3 l
  74.         menu->AddMenuItem(historymenu,"History Mode");# t1 W. A2 d' i% P! I) [6 Z" N6 h" P
  75.         menu->AddMenuItem(nohistorymenu,"History-Free Mode");
    " @6 S8 B5 H0 F: P4 ]) c/ L
  76.         menu->SetItemIcon(historymenu,"check");
    : S8 f7 U3 d8 [& I% M& x; F
  77. }
    2 j2 |$ H: E$ _. g+ r  ~3 v

  78. & J! C' m+ t3 x% N8 ?. ?
  79.         }
    ) o  Z- u9 {; i) U/ v
  80. 9 _2 [( r! D* a$ f
  81.         tree_control0->SetMenu(menu);
    # |" w. e9 @1 q( h6 C7 l  k

  82. + _6 w, x+ H- E: T0 M% S0 d& L/ i
  83.         delete menu;' l: v2 u  }  C* O1 T1 U
  84.         delete submenu;( F1 W0 }' D/ t9 P% S$ M' q
  85. }
    + P/ ?# F. [# K& d# y
复制代码
4 z+ @* v- H3 c+ m
5 q3 F7 r6 T8 n; o, ~( e. f
9 x+ U% E+ |/ {: ~$ ?4 }+ \
NX二次开发treelist控件添加右键快捷菜单回调函数的简单例子- w% O/ r1 L% |: z

% R; S3 k1 ]2 K+ c这里大概的模拟了下 部件导航器的功能!, q" r' O7 q! u) w  B$ K
5 ?" a6 ^* J9 m% V
3 |( u2 X( ]) u- `; {

NX二次开发treelist控件

NX二次开发treelist控件

: F. S, O& W9 f7 }3 k8 I6 B" h: M0 o" j3 Z6 h

NX二次开发treelist控件

NX二次开发treelist控件

7 R2 P# [% Q) b+ q$ g6 Q3 p$ Y; ?: f, e9 O

NX二次开发treelist控件

NX二次开发treelist控件

( Y" n' p. Q, H" s
! R- r' W5 }6 U  H! b6 Z  J3 Z& h" J1 |7 n
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了