|
|
右键菜单或快捷菜单,是包含在AutoCAD基础菜单组中的特殊菜单。这个菜单只在用户按住SHIFT键并点击鼠标右键时才出现。 9 [( c) Z) Z$ v0 b- }6 y5 X" l8 W
R$ C" S# E+ Q+ Q1 i' i. t
8 @! a! s! ^% w+ f+ K9 T在一个基础菜单组中,当一个菜单的ShortcutMenu属性为TRUE时,这个菜单就是快捷菜单。你可以遵循"为一个菜单添加新的菜单项"中列出的步骤为快捷菜单增加菜单项。 7 ~5 ~% [% `) r" ~7 E+ o0 j
8 e1 [) k3 }2 t/ v& b2 F5 b$ q0 P, ]5 l7 l
新的菜单组可能有也可能没有一个快捷菜单。要想为一个菜单组建立一个快捷菜单,须遵循"建立新菜单"一章中列出的指示,并且要把POP0做为这个新菜单的标签。 ! S P+ j3 b. }
/ D6 _1 I# J, k' g% F9 N1 K, R& a- ]! t
4 h! m ^" H9 A
以下示例如何在右键菜单的末尾新增菜单项"OpenDWG". ! p; Y- t; y3 h! R
! }9 C1 p D' [. M/ q- W5 M. E- O+ @
; B, `) ]- ]" q, ]4 l: S7 T
Sub Ch6_AddMenuItemToshortcutMenu()
$ B- T1 _" V& x; k7 X: J+ U9 `: m: B5 s+ g. @, C1 h
Dim currMenuGroup As AcadMenuGroup & e. F0 t# I- T8 b- N* ]4 C5 L
4 B7 j% M* L/ F4 X# t9 l( }1 P( G& V) ~- XSet currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0) 6 Z4 R6 y2 b) p" }0 n# O1 a5 J" Y
# k' \3 G! H. g8 y" }5 @( ^ ~7 u$ G$ }% U
8 D4 _: N: J' E2 ]: d; S'找到快捷菜单并赋值它为shortcutMenu变量
' f: P6 w5 C1 u' U9 b0 W: J9 D1 Y6 z& h+ B v
Dim scMenu As AcadPopupMenu
$ [3 T: W# c3 _# }) }! S- ^; A( e
$ p% ^5 o! t M& w6 m. tDim entry As AcadPopupMenu
8 \/ `$ {; S+ Y5 p8 |6 H, U& H! Z1 h/ r9 s" G) J
For Each entry In currMenuGroup.Menus 7 ^, y+ x( x, U
h3 k0 y2 j. Y9 r
If entry.shortcutMenu = True Then
, E1 Z5 r2 }' G2 v2 T- }* \5 C8 v5 K N! t( B: f% ]
Set scMenu = entry . K2 Z8 n2 C8 O/ j# W: n0 v3 ]
; e& o& w; }. U
End If
. L% P' S* n# H! _- A
1 ?$ a' z& u7 S" sNext entry ( N2 `' G" g' B4 Z( u1 M
# q1 M5 }) w1 b, q+ H; F
. k9 v" d/ _2 q; j/ p# z. U
* |; R% a9 ]% _1 [7 h7 i o' 在快捷菜单中增加菜单项
1 u; ?& c6 A9 S( V8 X* y; x2 i1 {' m5 h! V3 q
Dim newMenuItem As AcadPopupMenuItem
3 m- M; P k/ l4 }5 W7 \& i* e" Q1 Q- A7 B4 e0 A
Dim openMacro As String 4 p3 C ` ~; c" s
/ ]7 ^9 A) ]: Y: {" H* L! v
' 为宏赋值VBA表达式"ESC ESC _open "
7 |6 ^+ ]4 p" b. n& i- j7 p) i* B! ]: b% [0 |
openMacro = Chr(3) + Chr(3) + Chr(95) + "open" + Chr(32) ( P2 a2 h3 ?6 d% ^
% N- D I2 J9 t6 n* Z! m. t3 d6 U% t4 P, ]& J
Set newMenuItem = scMenu.AddMenuItem _ 0 }: S5 ^! b# O6 b
8 E* [: F' b2 T- A2 n" a6 A2 T4 |4 J("", Chr(Asc("&")) _
! Q- I4 {! ]1 s( q
& ~4 O* T4 ]1 R+ {! h+ "OpenDWG", openMacro)
7 ?2 _/ g0 w0 f B2 Z; P$ v2 H/ o ^8 R; H, v ?7 l5 G
End Sub |
|