|
右键菜单或快捷菜单,是包含在AutoCAD基础菜单组中的特殊菜单。这个菜单只在用户按住SHIFT键并点击鼠标右键时才出现。 # S' I$ t4 j9 A: h6 R
4 l( l/ X$ s* Q9 I% i% L6 H
3 T. @5 m% u- R& l8 T8 |, o在一个基础菜单组中,当一个菜单的ShortcutMenu属性为TRUE时,这个菜单就是快捷菜单。你可以遵循"为一个菜单添加新的菜单项"中列出的步骤为快捷菜单增加菜单项。
+ c, ^! D: Q8 |3 h! ~
* c0 \# }, l8 _# G5 f$ W! U7 |6 B1 z* M6 t: y
新的菜单组可能有也可能没有一个快捷菜单。要想为一个菜单组建立一个快捷菜单,须遵循"建立新菜单"一章中列出的指示,并且要把POP0做为这个新菜单的标签。
; U6 W! w' H4 _8 L! T
- a" \9 f( N4 w. c. o
) P1 t# j9 G) z+ ?# L: @& F1 \: T; U; R4 T5 l# X
以下示例如何在右键菜单的末尾新增菜单项"OpenDWG". . [8 g2 }& T e
# h+ F Y2 w' J! o6 A% u, J d! P' L3 W( o9 ~3 d" y
Sub Ch6_AddMenuItemToshortcutMenu()
) C, A- E) H& {4 ]
( m% q( p- W# g0 z4 d- VDim currMenuGroup As AcadMenuGroup
( Y: G R$ S! j, y2 z6 y7 P- b
h$ W, O$ z( U/ C/ kSet currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)
; w1 Y( S* \+ g5 K$ A9 R t: L
$ i* k ~ [7 ]5 G6 ~$ Q: q1 w
5 J) U! k' V& H8 q" r7 b& w
& S) {3 B! L% e'找到快捷菜单并赋值它为shortcutMenu变量 - v5 f3 Y% d. S3 x6 G" H
n) T9 q( c+ D) |Dim scMenu As AcadPopupMenu 2 K2 g# z: k3 H$ s8 x
! ~! s5 x8 h5 ]/ y9 h/ _Dim entry As AcadPopupMenu 5 O: d6 _. W; U, [/ h" v" O
0 k7 \* }! N( d8 \* GFor Each entry In currMenuGroup.Menus
2 |' O) T6 \ S' N+ Z
8 T% F2 }, C! A7 Z3 @: }If entry.shortcutMenu = True Then 6 n6 P: x* L! |4 r* Z
* M% e" n4 o0 n/ B, ]: SSet scMenu = entry / _) O; ?7 t' V
; ~+ Y/ B' s% ?1 L- |- D
End If
7 U9 Y& T2 j5 M* B9 {0 A+ X; x# s/ ^5 a
Next entry - T, Y. X' e: N9 C1 Y
, h7 g. P8 b; s7 m) T, i; z8 Y, n3 Y4 W! d+ P- ?5 o
0 f; k7 V7 p3 r/ `5 L, F1 t
' 在快捷菜单中增加菜单项
+ ~, z# n7 t! J# z5 J5 `; W2 f- B# \- C( K
Dim newMenuItem As AcadPopupMenuItem
/ E R9 U! F# B1 v3 x. u& y0 I, D
. M% w# [5 J$ KDim openMacro As String & P) g2 s3 ^* e6 o2 T/ q
8 B h) C: }0 T5 s
' 为宏赋值VBA表达式"ESC ESC _open "
! y5 R( n v" x3 G* |
3 B. z( t0 v0 Y8 |: QopenMacro = Chr(3) + Chr(3) + Chr(95) + "open" + Chr(32) 6 S3 ^ X' D1 z+ t" \
4 i$ I/ l! w& B+ c
" f0 s' [8 z b9 g2 u2 FSet newMenuItem = scMenu.AddMenuItem _
: r: B' u# u! e% a* {1 v, c7 U
" l, [* t7 T+ y8 K/ \("", Chr(Asc("&")) _
8 S) q, |$ d4 O* e. x7 u" g# U0 E/ Y
8 H7 L. N* r: j, H+ D1 _+ "OpenDWG", openMacro)
; e6 G& K* I( Y6 j, P' o0 D- L
) e: C- _/ P8 U& n7 HEnd Sub |
|