|
|
右键菜单或快捷菜单,是包含在AutoCAD基础菜单组中的特殊菜单。这个菜单只在用户按住SHIFT键并点击鼠标右键时才出现。 * I- H) H8 H4 K# y( n! h- y. w
- j6 z" n: o( w5 T7 G. z+ j
/ R4 P* s3 ^9 {$ u% {在一个基础菜单组中,当一个菜单的ShortcutMenu属性为TRUE时,这个菜单就是快捷菜单。你可以遵循"为一个菜单添加新的菜单项"中列出的步骤为快捷菜单增加菜单项。 : F) n i( B3 \* l- |! t/ j) h
( ]' L3 l: [1 P8 D% z
+ v3 \6 H; v+ o) \0 a5 K% p新的菜单组可能有也可能没有一个快捷菜单。要想为一个菜单组建立一个快捷菜单,须遵循"建立新菜单"一章中列出的指示,并且要把POP0做为这个新菜单的标签。 0 d+ ~, } w7 l% ~) e* a
0 @; T( w$ }% g: u- I
" j7 \3 m1 q# _% f* h1 u0 K
- |" q& ]/ Z7 r- C: s- C* l以下示例如何在右键菜单的末尾新增菜单项"OpenDWG". 8 c+ E# t- a; ]( N
, e* D. y# c8 P" @
) R) w4 `8 W8 d9 d _0 hSub Ch6_AddMenuItemToshortcutMenu()
7 X3 p5 L U5 R- r. i U6 O
! m8 | j* A( h( F+ J3 t4 C4 A! TDim currMenuGroup As AcadMenuGroup ' `6 g5 s7 _9 w8 f$ \7 m" O
; c/ a; k3 {, C
Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)
2 G0 ~2 r$ @4 D# e# N% Z) e9 A" U
J1 V* [% R2 T8 D, C4 q7 t- K# x2 e" I' D m
9 {* ~6 Q& R' C, H'找到快捷菜单并赋值它为shortcutMenu变量
/ M( P( E5 y# ^* ~
( G! n$ v8 y+ ^" w; W' ]- H2 sDim scMenu As AcadPopupMenu : u! a3 ^: S3 @8 u: o
3 n1 t! Z# W" X* j( `0 i* gDim entry As AcadPopupMenu
7 Q( H. `' J N+ l0 `: C: e+ a- S
# z6 y w# I% q* ~' SFor Each entry In currMenuGroup.Menus
! z0 i: b. F8 A
/ O+ O2 k3 E- i( \8 I( l- v2 ~If entry.shortcutMenu = True Then
5 Z1 r& c3 i1 A' t1 M4 q9 M
* f- c, ^' Q. m" o2 OSet scMenu = entry
* ?6 Q. @( r( |- J, r, A1 h7 }. H6 a7 I* ~0 K/ {
End If
- z; h T; N5 T* R& X
( c. T9 t. e8 kNext entry 2 l) o- B1 L5 E7 a$ M
5 k5 |: p+ Z* P# d' y! e' ?/ q
) ^0 W8 C' `# F" z1 F: o5 E
9 i$ J6 ]8 t* _* |$ @- W2 t7 U- P1 |' 在快捷菜单中增加菜单项
! ]* Y; M1 u* r
; I6 r2 h1 w: |6 D( @" tDim newMenuItem As AcadPopupMenuItem . H9 c* v7 h" M: k
' t$ V3 n0 h( ]8 k! G* j
Dim openMacro As String ! w3 F. S4 I' A5 Q$ ?3 @4 [: y
8 B. k! [7 C$ U/ I4 @
' 为宏赋值VBA表达式"ESC ESC _open "
* N6 A( ]9 K2 r' R9 @; E7 `% n s5 |* `8 A2 h5 V" z9 I, \
openMacro = Chr(3) + Chr(3) + Chr(95) + "open" + Chr(32)
* l2 g) j/ e" x3 |/ R i& w% Y- E. g" U5 k
" u) F$ F2 g3 n, `Set newMenuItem = scMenu.AddMenuItem _ ( B# [" g; D! M9 y I1 Q. |
! r- {# E9 w4 N/ U("", Chr(Asc("&")) _ 1 W: O% H) \4 i" B: t0 Y- x
* k. \1 ?9 z7 O3 L* E+ "OpenDWG", openMacro) 9 \# v( b+ V r/ C9 X7 ]2 ~1 n
/ C" X# B) a0 ?7 [. UEnd Sub |
|