|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
- <p><div class="blockcode"><blockquote>
3 q; j& S% Q- |9 E6 w& M/ i - * [7 X0 F- Z- y- G y
- 4 }& O) T9 Y0 c$ I+ j) [' A
- enum MenuID
2 A( w7 e! Y! y5 C- j- Z3 G' ] - {, B2 [' `+ l: Q/ q5 `
- RemovetopNode = 0,
( A8 s8 p7 i1 C) ` - DeleteNode, Z4 P3 t3 g- k
- CheckedMenuItem,7 I( F" M- H* C3 c. ?( o
- DefaultMenuItem,! p' U5 P( Q& X- j+ Q
- DialogLaunchMenuItem,
& v, g" U. U, J; y" v4 Y/ z! M - DisableMenuItem,. v- X+ x0 {, f9 X* i
- HiddenMenuItem,
5 i" j. `& R8 i _4 o - IconMenuItem,
4 h' k# N5 L* }7 k* }5 h/ a - 2 k8 t3 @( T+ }% e- K
- SubMenuItem1,; G3 [* P2 a" l3 Y
- SubMenuItem2, {* z3 I- r7 ]$ N
- SubMenuItem3,
+ y( q& U& I! g' \& J - SubMenuItem4,
$ c4 P4 x4 m1 J! W: D" d3 ]6 X: r
- g. R3 H5 S Q! }2 }- historymenu,
1 E& l. c Y3 [% h1 Y - nohistorymenu,% W( v" O+ R5 E6 R9 ? |
- 7 p* R* `9 j9 s& b/ n" q% U
- modelhistoryfilter,
8 _ p1 z; S, K7 C4 e, Z; r0 q/ {# ^ - filterSubMenuItem1,6 S/ D5 t8 v" X" O; s* w: _) n, I6 _. E
- filterSubMenuItem2,2 p2 i+ I0 l- i7 s( B9 D% _+ E
8 w* h5 r5 X) }- ; R% E$ i* C, T/ X3 u0 k. D
- };. }+ K- _4 V/ a6 u8 _, K
- void tree::OnMenuCallback(NXOpen::BlockStyler::Tree *tree, NXOpen::BlockStyler::Node *node, int columnID )
6 {, r- ~. ~" S5 h. f0 p R- V& T - {
^0 o! k. B+ U9 ` - TreeListMenu *menu= tree->CreateMenu();
* u3 F, v% ^9 w% q5 D3 | - TreeListMenu *submenu = tree->CreateMenu();8 m' G/ h O# y% X
- if(node==NULL)& U) a/ x- \% ]$ ~: y# b8 E
- {
% s$ L1 `0 x2 p - menu->AddMenuItem(RemovetopNode,"Remove Top Node","delete");
+ Q" y; |" x- h* s. L0 n9 \ - menu->AddMenuItem(CheckedMenuItem,"Checked Menu Item");
, H/ X F/ ?5 O' z! ~, k' s - menu->AddMenuItem(DefaultMenuItem,"Default Menu Item");/ `, Y$ g, S: P3 ~! c
- menu->AddSeperator();
$ u5 q8 }- V1 J$ `% l6 N - menu->AddMenuItem(DialogLaunchMenuItem,"DialogLaunchMenuItem");. w/ X" Y7 s8 P* ~
- menu->AddMenuItem(DisableMenuItem,"DisableMenuItem");) R5 k+ |/ E$ t8 j
- menu->AddMenuItem(HiddenMenuItem,"HiddenMenuItem");
" K+ H5 \6 z" E3 d2 P, N - menu->AddMenuItem(IconMenuItem,"IconMenuItem");
4 ]5 @8 q( [5 R2 u5 E4 j& v* J
; Y4 ^" g$ o0 j) n9 I- menu->SetItemDefault(DefaultMenuItem,true);
' ]; [ B% e) d" t* V - menu->SetItemChecked(CheckedMenuItem,true);
" k: ]" s5 \* n1 P$ V! D - menu->SetItemDialogLaunching(DialogLaunchMenuItem,true);
' O6 ?+ q' d) B! ~4 e* [! Y3 r; | - menu->SetItemDisable(DisableMenuItem,true);6 {* l. x) ~3 R5 X: \1 e
- menu->SetItemHidden(HiddenMenuItem,true);2 M/ M+ z+ H# u% A+ a+ }: n( C# s
- menu->SetItemIcon(IconMenuItem,"skeTCh"); D& k9 d6 K" X5 {
- menu->SetItemText(RemovetopNode,"Remove Top Nodes"); f- b w7 t, p7 |% h5 y" z! ?. m% ^
7 `6 b/ o3 z/ e0 @- // submenu
$ ]# e* _2 `& v( S3 z5 r - submenu->AddMenuItem( SubMenuItem1,"Model Views");
# f+ |& S& j H+ W - submenu->AddMenuItem( SubMenuItem2,"Cameras");% i3 p( D" ~# }9 E g6 m
- submenu->AddMenuItem( SubMenuItem3,"Model History");. O$ @1 {* j2 v% l. V( T
- submenu->AddMenuItem( SubMenuItem4,"History Model");# b& l- c" n$ s- o0 U! }, { x
- $ F) Y$ Y0 P/ x; P8 E H9 S
- menu->SetSubMenu(RemovetopNode,submenu); W3 Z2 D& z8 M1 x% e; w
- 7 I- x1 V `2 N5 f' h+ i
- }1 H* G+ _" _. I
- else$ k$ L" u: ~5 X, Y6 J7 H7 r
- {
1 |/ k- W' H t2 a6 i) F V - if(node==modelhistoryNode)
7 Q6 P, e) `, h$ I" ^6 b* z - $ _, s" Y8 q) m' b c- \
- {* Q; W0 R m7 q% r% Y& d' E$ ]0 ^$ z
- menu->AddMenuItem(modelhistoryfilter,"Filter");3 Y" P- {: o1 Q/ s
- // submenu$ b* n# F5 H3 U o# s. }
- submenu->AddMenuItem( filterSubMenuItem1,"Remove Item");
; S% U9 i0 k, N' a - submenu->AddMenuItem( filterSubMenuItem2,"Remove All But Item");$ k+ a" |: ]1 @& C+ D/ C9 |
- menu->SetSubMenu(modelhistoryfilter,submenu);
" n& u" l" @# I# L+ M# @ - } C. S5 @ m% n9 C. [: V
- else if (node==historyModeNode)
1 s# M6 _) x: V% ~6 t3 A- ^: g - {
- }+ f& L$ W6 L6 N1 H8 ?, O3 _* o - menu->AddMenuItem(historymenu,"History Mode");
/ `, B7 u) c1 X, f, t: Y* H M3 y - menu->AddMenuItem(nohistorymenu,"History-Free Mode");
\ Z6 g0 h+ l1 @" Z) l5 m0 q F' w - menu->SetItemIcon(historymenu,"check");
; {) s& ^; W, d3 M- n- X7 h - }& V) w8 Z2 A7 r
4 V# g' _# b. r- }% @- \' R% z- W/ |, ?$ e6 |
- ' F$ z* p* j; v& ~1 U; D" v
- tree_control0->SetMenu(menu);
9 u* O+ {: R' t, {
0 `3 S3 f# d2 b1 D- delete menu;, y/ L( E+ B6 ~/ v3 z( @( [( a
- delete submenu;+ [3 z: b6 z! H) R# H
- }) n' G: r' G- r1 M9 `4 A
复制代码 # l! D# ~& k6 S/ p9 R& ~- x
6 @3 L' L1 P' g! J9 Y7 F: f x4 E$ | V/ ^ H
NX二次开发treelist控件添加右键快捷菜单回调函数的简单例子0 L4 d5 \9 I* p6 _2 \! u
4 x9 z. d5 D2 D# m7 }% L
这里大概的模拟了下 部件导航器的功能!
) o k1 }# d; W' d7 t/ b$ L$ Q6 a1 o9 f; u, |; P1 c
$ A6 q5 s3 c4 A% l. b# [/ M
NX二次开发treelist控件
+ j6 `/ V! _( k2 \4 x4 l( [
! x! a8 U. l1 y, G X
NX二次开发treelist控件
7 H+ h! W, S6 _ _
) j/ c; R# r2 x
NX二次开发treelist控件
- `. f; A: l" F: _2 U, O" X
6 k8 d$ o3 k/ ?, V
. H6 R3 p$ k' {4 } \* Y7 v |
|