|
右键菜单或快捷菜单,是包含在AutoCAD基础菜单组中的特殊菜单。这个菜单只在用户按住SHIFT键并点击鼠标右键时才出现。
F2 i8 F: n. D: S- @# E! c: i8 ~" ]! {* l
! S0 k4 C5 G8 P在一个基础菜单组中,当一个菜单的ShortcutMenu属性为TRUE时,这个菜单就是快捷菜单。你可以遵循"为一个菜单添加新的菜单项"中列出的步骤为快捷菜单增加菜单项。 - m: Y% H, S- I \6 S) L/ u
/ k8 G+ s/ D) S
* b* ^) p7 u, U' u2 U a: w新的菜单组可能有也可能没有一个快捷菜单。要想为一个菜单组建立一个快捷菜单,须遵循"建立新菜单"一章中列出的指示,并且要把POP0做为这个新菜单的标签。 # `- D+ g. J* K* q- B2 `: K N
' q9 E3 g/ t3 c0 J1 J6 \3 Q* X: [1 l6 {1 m7 L" Q3 z1 o/ j7 z
1 I$ P/ Z7 \2 J& [
以下示例如何在右键菜单的末尾新增菜单项"OpenDWG". ; `: s3 ?8 [3 s) {" s2 ]
, P- j8 b$ N) C. z$ o6 G
. F" f/ n9 @4 Y7 `
Sub Ch6_AddMenuItemToshortcutMenu()
l% C" l! v$ `0 ~! p; o+ A; O& f1 O% L) _( f. j
Dim currMenuGroup As AcadMenuGroup 0 f0 p! D4 T8 |2 p7 Q5 ]6 A8 b: U
. c& L/ b3 k. S0 {
Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)
! y/ s: g* w/ S/ o) h$ B" L& r8 n
% Z* K& S5 v" v0 f/ X6 z
0 ?5 {4 ]0 @# B/ |: k$ t2 w- K+ r* h \! _6 P
'找到快捷菜单并赋值它为shortcutMenu变量 & r8 I% M1 X$ j- q
9 ^8 l0 Y, L# i1 |* i* sDim scMenu As AcadPopupMenu & y8 b) S" _; w0 D- j6 r
1 Q$ q) D/ R) H, n# EDim entry As AcadPopupMenu
7 e! p v( Y; K9 n3 c3 j
! v- @$ f% b* w% ?, h3 dFor Each entry In currMenuGroup.Menus ' M4 f, q. Y# X3 @& K0 }7 L5 }
1 z X( ]$ T5 n( C- ]: ~If entry.shortcutMenu = True Then
7 i; N ?+ s9 ]2 L0 J$ U! T9 x
! T/ {& M, D; x. b, N m* W: \Set scMenu = entry
$ N0 o8 G. S% v1 h- a8 ?
2 [5 z% \" q% ^# M, N/ A3 ^End If % b# b/ k1 F" l8 F5 y6 w
# g" v# d3 [# x; R' C7 k5 SNext entry
1 B' }" P3 C2 m& q) D2 d+ t: Z% T v7 y" a3 a$ s1 V- X1 L, ?
4 K: M" z$ b- Z- {' }0 C3 n/ M
; n7 g) a% O$ X% A9 m' 在快捷菜单中增加菜单项 3 Y8 ?/ o7 F$ w6 _6 a
- b6 w" X. Z3 ^6 |; kDim newMenuItem As AcadPopupMenuItem
$ j8 S. ^- m; e, d& ]1 x- G i7 y
* G( I8 r' K. A9 ^$ B6 D% uDim openMacro As String
/ Y% }" S" G; Q. h3 m9 r% u$ v% K. g1 V, X& `. W
' 为宏赋值VBA表达式"ESC ESC _open "
! e( }) d3 w7 r
+ T, I' A6 j. Q2 c2 ^+ kopenMacro = Chr(3) + Chr(3) + Chr(95) + "open" + Chr(32) ' S) P8 i" I h g
5 {8 y/ `9 i) l+ ?. a _
* J( R$ ^' ]" D8 K* |6 G( LSet newMenuItem = scMenu.AddMenuItem _
% n: ~5 }' Q5 J" w& x1 d4 ]) E6 K
("", Chr(Asc("&")) _ 2 W0 m4 U) Y. K4 O
6 \5 O0 Y, z8 v- `! c0 f+ "OpenDWG", openMacro)
8 y# | E' K3 L* A7 B9 v
! i2 u. x9 F- k5 lEnd Sub |
|