|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
- <p><div class="blockcode"><blockquote>
5 h b0 K( B; D9 {' V" I: N7 y - 2 p' ], G8 t+ y0 q# ?
; `) K: ?# B ?+ D2 ?& g1 c+ a- enum MenuID
3 _( X% N3 r% i3 w$ U - {
6 ]) e' Q; T/ l - RemovetopNode = 0,8 ~1 W5 M# l; @) k
- DeleteNode,
! \, w F* B6 m# R' X# ` - CheckedMenuItem, m/ g' s" ~% U7 m) c
- DefaultMenuItem,4 M) T7 _" X6 f) T6 p3 ?& w
- DialogLaunchMenuItem,5 H( |, S# W, A4 T6 Q
- DisableMenuItem,
) R# t T' _; l. [4 b4 j$ C - HiddenMenuItem,3 E8 o0 \) I) z$ }$ e3 m
- IconMenuItem,
# U. J3 X v8 Q4 w: c - : B7 h! R2 z+ p, C4 o
- SubMenuItem1,$ ^# J# {! R. e8 _0 N
- SubMenuItem2,* f% v: e: x- w' q% U
- SubMenuItem3,8 ?5 {4 R+ |0 o0 r
- SubMenuItem4,' S7 t5 B$ T. Y) }, A8 k2 F" M
/ C5 }* ^5 G- ]& x' r- }3 C1 ~- historymenu," ^$ L+ C) L) M
- nohistorymenu,
) u) I7 A' p* L6 q+ D
; `3 Q5 U4 }3 N2 o2 m- modelhistoryfilter,) \! v! Y) Z5 z. L/ B- Q
- filterSubMenuItem1,
7 ?1 J& d) W6 c! I: n( j - filterSubMenuItem2,
# x- }, j' f7 A) z* l0 |) P - % b0 o9 g9 m$ ~0 c( |
4 ^1 l _- j4 x; `7 e- };% [% {& K0 S/ |7 M7 I
- void tree::OnMenuCallback(NXOpen::BlockStyler::Tree *tree, NXOpen::BlockStyler::Node *node, int columnID )5 M" K" s* e' ~% v0 g
- {
( [% f5 Q$ Z1 H$ s( \ - TreeListMenu *menu= tree->CreateMenu();2 z4 t5 L* |" |! ]. e, H& }5 P: j
- TreeListMenu *submenu = tree->CreateMenu();
+ Q' K9 s6 Q7 W* \ - if(node==NULL)
" W* d# r% W# u4 I0 z: ?8 E1 W - {
6 d; a' T( p( R& [2 O6 R u$ O+ S - menu->AddMenuItem(RemovetopNode,"Remove Top Node","delete");
3 J9 F2 p; m6 h4 z+ m% K# B - menu->AddMenuItem(CheckedMenuItem,"Checked Menu Item");# }, Z" [: t4 i# @8 }
- menu->AddMenuItem(DefaultMenuItem,"Default Menu Item");
8 \- ^$ q) F7 Z c( H# H4 h - menu->AddSeperator(); J! ?4 k% }" K8 z, f2 f. l* f
- menu->AddMenuItem(DialogLaunchMenuItem,"DialogLaunchMenuItem");
% V& F: g' V- k# s0 E: m* g- y- l' z" L" T - menu->AddMenuItem(DisableMenuItem,"DisableMenuItem");% w# m# J8 q' w# A/ g
- menu->AddMenuItem(HiddenMenuItem,"HiddenMenuItem");5 w v# u: @/ {/ v$ R6 K
- menu->AddMenuItem(IconMenuItem,"IconMenuItem");
8 t& U8 x+ I/ ]' J1 F, V9 f - 8 j1 F) t* D( _# U
- menu->SetItemDefault(DefaultMenuItem,true);
/ \4 ^6 e$ \# Y+ P2 ~. ?7 \) P* w - menu->SetItemChecked(CheckedMenuItem,true);1 {& N0 m. A9 z! Q
- menu->SetItemDialogLaunching(DialogLaunchMenuItem,true);
& Z( W) }( y3 H" w: \ - menu->SetItemDisable(DisableMenuItem,true);
7 o+ w, Y9 _ o1 l+ d4 q" r# _ - menu->SetItemHidden(HiddenMenuItem,true);* g& o4 D ~: K+ k/ S% c1 d
- menu->SetItemIcon(IconMenuItem,"skeTCh");
I' t Q0 T2 b$ v5 |( H' I2 f - menu->SetItemText(RemovetopNode,"Remove Top Nodes");0 ], k6 m* ~2 G% E' p
- 1 E2 N/ |$ n5 u$ F
- // submenu
! f ~' D9 t) I6 C( X - submenu->AddMenuItem( SubMenuItem1,"Model Views");
$ q& j/ o4 Y5 U3 t1 ?+ l - submenu->AddMenuItem( SubMenuItem2,"Cameras");1 \* a; H# `( ~# P* \# F# {7 j2 g
- submenu->AddMenuItem( SubMenuItem3,"Model History");
! q0 X% A. d& d1 | - submenu->AddMenuItem( SubMenuItem4,"History Model");1 v( c, D- R: P0 D
) o2 f" A, N6 _: ]- menu->SetSubMenu(RemovetopNode,submenu);
9 e3 X* G, u8 d. w* C% F9 N, S | - % }: m7 R! H) l# k1 y' C- s
- }
& W, C' i) U1 B" [' m$ u9 F - else1 _) F+ ?# J# N8 p; }, S
- {
) v n; {! r& m6 R - if(node==modelhistoryNode)
# ^. H4 | u+ k2 e - ( Q6 b) M7 J) `/ K R
- {
3 _( i1 v* e0 U& p/ Z) v - menu->AddMenuItem(modelhistoryfilter,"Filter");
5 O; e( `& r& V' w$ D - // submenu. w7 Y& ~/ h [ {; L) J
- submenu->AddMenuItem( filterSubMenuItem1,"Remove Item");. ]2 V1 J0 [3 H
- submenu->AddMenuItem( filterSubMenuItem2,"Remove All But Item");
" T, W2 s0 p8 H2 A- \1 s - menu->SetSubMenu(modelhistoryfilter,submenu);) D" r+ P! A5 f9 Q* {
- }7 U5 [( ?2 {! W3 ]* B; I8 e4 e% E
- else if (node==historyModeNode)
; t3 t" e H0 I3 ?4 B6 Z - {
4 J* }* I9 l; N# O! M0 B0 ~) z+ R" D - menu->AddMenuItem(historymenu,"History Mode");1 n( ^' Z- b+ ~* _7 G o7 {
- menu->AddMenuItem(nohistorymenu,"History-Free Mode");
- m* I+ A+ m2 ?' ? v7 n - menu->SetItemIcon(historymenu,"check");
4 w i; b; |8 ]% [. z# Q5 i$ ~ - } T: r" g+ ?) b4 w7 | k+ p8 E) P
. y0 {4 c) F& P4 u- } O) A7 j F4 ^3 r
- : y( s3 a. j- L- l: m! ]0 R
- tree_control0->SetMenu(menu);
5 ^4 x! x( X2 L- U* y3 J# ~ - ( t4 r! }0 n; Z( ^
- delete menu;7 N, [( y1 F8 A/ H( g# U
- delete submenu;7 S* r6 x* A0 L. _1 x0 Q
- }8 A; i& S5 o( E: X. T6 T) W2 K: S d
复制代码
8 L" d4 z8 u) a* j2 q- I
0 S; m d, d* q" I M7 x% b4 k" A' i9 ]. {
NX二次开发treelist控件添加右键快捷菜单回调函数的简单例子7 ~+ Y! J ]$ y6 K
5 K; O! s7 f6 z1 a, Z
这里大概的模拟了下 部件导航器的功能!# T4 T, D& r) o: t0 G
; F5 J+ A6 ^, X7 W3 z
. C+ @6 ?( E4 k: r: _, a
NX二次开发treelist控件
+ o0 g: i4 w' ^& J% U2 q4 P
" f5 h/ ?8 t7 {
NX二次开发treelist控件
0 u6 ~- k7 o6 ^$ ]
; ~- N$ q) P, }4 ?6 [5 z
NX二次开发treelist控件
( l I0 e$ ^0 l3 e! j$ \
8 N; d% F# {7 t
: I; f, z& z$ ]$ t& n |
|