|
右键菜单或快捷菜单,是包含在AutoCAD基础菜单组中的特殊菜单。这个菜单只在用户按住SHIFT键并点击鼠标右键时才出现。 % {: i2 l T3 Q
" E" l+ c! F; W% M, C1 K9 t$ e9 d5 j
$ w! `# }) A6 U+ c% h5 j在一个基础菜单组中,当一个菜单的ShortcutMenu属性为TRUE时,这个菜单就是快捷菜单。你可以遵循"为一个菜单添加新的菜单项"中列出的步骤为快捷菜单增加菜单项。 / u* i' `) G2 N3 @6 }& s
; Z" N* N! Y" X4 a8 g( h" J( p
3 C7 j' C* Z! f% i/ T P& P
新的菜单组可能有也可能没有一个快捷菜单。要想为一个菜单组建立一个快捷菜单,须遵循"建立新菜单"一章中列出的指示,并且要把POP0做为这个新菜单的标签。 & _; k/ d$ v) l
1 i! A! D6 P# |# p
/ O0 q) d0 Z3 k+ E9 L2 j8 r$ @6 F1 p! ^1 f
以下示例如何在右键菜单的末尾新增菜单项"OpenDWG".
' S/ X. e. _7 x: K( |+ N/ Q) N+ p: i% \1 Y" o5 P
7 g5 i$ W; O$ R
Sub Ch6_AddMenuItemToshortcutMenu()
1 r5 k! q) s; S7 v# `8 {
9 Z7 x9 F3 _2 T& _, L: ]Dim currMenuGroup As AcadMenuGroup + Q) D0 L. H/ L1 J3 }
# O. e. h/ j2 d, b- L* JSet currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0) , [3 J- ^) w( f2 m: U9 \! u5 a" h" |
3 B& w, N C8 g8 G. b
' j! k: Y# o& j/ Y0 f& I' L) S: C& |/ N
'找到快捷菜单并赋值它为shortcutMenu变量
. N5 g' s- h8 S$ S6 a% ^
6 ]' ~! E3 h% K$ l* f) \Dim scMenu As AcadPopupMenu % s5 V, B: p/ S# P
% |' [+ k3 h* C3 _* {! [
Dim entry As AcadPopupMenu
8 w, Y+ N, n6 f2 C$ @$ J' c& O4 D2 X- e& e) T7 J8 x% V5 [8 m
For Each entry In currMenuGroup.Menus
, I7 I1 Z4 ?, j: h. X- P$ K( m3 e5 B- q- D0 r0 m
If entry.shortcutMenu = True Then d3 d& h: x) Z& n
6 }3 `, d0 z k9 y0 x: ESet scMenu = entry
' A9 N5 G1 A/ W) B8 o& c! G h4 g* K* W
End If
B$ {& ]: `! B& N; I" e) H
8 _& L+ \% n3 Q T# ~. @9 Y( ^( eNext entry 0 s8 e" ^ @* j# j$ n
a+ C# F" ~- v4 H0 Y+ `, z
: y7 g0 A! [" z" d2 a1 M0 L( J% J
& r+ Q R* J2 a0 ]$ l) @/ a' 在快捷菜单中增加菜单项 * t( ?2 A6 z! n. g: J8 p
( i: K: l* _: Q; c: n
Dim newMenuItem As AcadPopupMenuItem * A9 l+ a5 |# G
6 \& `$ x% [8 G" b$ {6 C. J- oDim openMacro As String , a* E8 v! U8 s+ B: Z) u
% S" Q/ B6 ?& d: _" ]: e0 H
' 为宏赋值VBA表达式"ESC ESC _open " * Z% k4 n( Q0 n' U$ ]
; k$ e( l% O/ A* P0 TopenMacro = Chr(3) + Chr(3) + Chr(95) + "open" + Chr(32)
7 x: ~, ^% T |
4 ~. M, M. h; D( T% K7 r R& x3 y5 r1 Z4 h2 t
Set newMenuItem = scMenu.AddMenuItem _
5 V; Y6 Y, \6 a, X3 F8 W) m
^# v2 Q1 G3 J& B("", Chr(Asc("&")) _ + B+ X# |% r* |' }4 a! U
' L: Y& s4 I$ x+ t+ "OpenDWG", openMacro)
" ?8 m/ }* X8 F3 d5 s& b, G) |5 B& o) L: X' N2 R! m& W
End Sub |
|