|
右键菜单或快捷菜单,是包含在AutoCAD基础菜单组中的特殊菜单。这个菜单只在用户按住SHIFT键并点击鼠标右键时才出现。 9 \ W7 A( ]/ I: p4 m9 E9 T+ a$ ^) F
^1 \) a6 Z$ P3 v: s' e
! U4 U9 }% L5 N3 U% G$ H) g在一个基础菜单组中,当一个菜单的ShortcutMenu属性为TRUE时,这个菜单就是快捷菜单。你可以遵循"为一个菜单添加新的菜单项"中列出的步骤为快捷菜单增加菜单项。 7 l5 k8 y8 t' ]- Z6 G
# {6 a n: }, w& Y9 ]" c4 ~$ Z7 X- \ b$ ^7 N( k- e; m
新的菜单组可能有也可能没有一个快捷菜单。要想为一个菜单组建立一个快捷菜单,须遵循"建立新菜单"一章中列出的指示,并且要把POP0做为这个新菜单的标签。
) Z/ ~: D8 S# e3 {3 S4 E5 \/ F* B; `- T! X6 }( {& m
7 r' k+ o5 S0 V1 Z" X$ R% Q
8 \( m6 g4 q* |. T6 b以下示例如何在右键菜单的末尾新增菜单项"OpenDWG". 6 Q$ W' o/ n: t: t( s% A! s
) p3 W5 Z5 Y: I- L' W
- V8 V, x6 E% D) @0 n, P- o6 a" I1 |
Sub Ch6_AddMenuItemToshortcutMenu()
+ l; j- s$ q& A# b" b( ?& U1 j
5 r7 V. ]- w+ m; O2 `" YDim currMenuGroup As AcadMenuGroup 9 {, U' ?* E: w! |) S3 g7 l
5 _4 N9 j4 ]- ]4 ZSet currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0) ( K9 Z- K% U* K% s+ ?$ ?/ G1 u
3 g+ N2 v3 b& ?6 Y$ k# u5 B2 b7 j$ r
; g/ w9 ?+ I% Q& e# U- J6 I* |! V n0 m( {: [+ [3 L
'找到快捷菜单并赋值它为shortcutMenu变量 8 Q- p1 M/ H/ u5 l, H5 p; V/ F( O
' e+ k! F+ \$ Y, ODim scMenu As AcadPopupMenu
3 l4 t9 S3 k4 r. V
6 d; y8 H6 \" Q3 |- EDim entry As AcadPopupMenu
! ^7 n. t$ ?. h, S. ^9 R3 N4 u) o. g2 ]# _) S& s
For Each entry In currMenuGroup.Menus 9 M6 W0 g* Z5 k7 r3 T, q" L
3 F% B! s7 |' H7 B
If entry.shortcutMenu = True Then
, m& s! o' F" Y1 b* v1 X
7 e5 D: g' C4 Q1 g. ]Set scMenu = entry ( ~! x$ S# g. M
9 o! z: C1 q# A, b. H( @
End If 9 O) d$ d: M% w
{( [6 T+ v% x0 R$ h' X S* VNext entry
5 w9 B, g% M; F6 b. I& k7 \2 { F |' T
/ b( b+ U- B3 O! U5 A3 o
* Q: B) s6 s7 l' 在快捷菜单中增加菜单项
7 R0 {- k- F2 V) C6 q
6 D9 \8 s$ F [) R4 qDim newMenuItem As AcadPopupMenuItem 2 L: u/ |6 N3 i5 s$ w3 K/ u
5 F+ w2 g$ I8 \/ q( ]% N
Dim openMacro As String
- T6 w. F1 P* v) H, v) X, K- i1 P. T% w Q; T7 N. B+ A
' 为宏赋值VBA表达式"ESC ESC _open "
0 i J; O2 y( B; q$ ?& H4 Q) _; e! c( d
openMacro = Chr(3) + Chr(3) + Chr(95) + "open" + Chr(32)
$ v. F' R7 s( a3 C
h) i ]: T( u- P. C
( Z) [: L I. U- v: }) T% R, E" WSet newMenuItem = scMenu.AddMenuItem _ 2 K; D+ ~! p$ C# I* X
" e9 P1 O- ?. H" f("", Chr(Asc("&")) _
' { {' O, ?6 V" Q* Z5 E- M4 x( p: C! A5 c9 E2 l' ]: Y' H( @
+ "OpenDWG", openMacro) ( Y4 {) a0 J, Y6 j( ~
7 a5 K0 N# y4 PEnd Sub |
|