|
|
右键菜单或快捷菜单,是包含在AutoCAD基础菜单组中的特殊菜单。这个菜单只在用户按住SHIFT键并点击鼠标右键时才出现。
% ?+ ?2 _) y1 C9 O9 i r- h+ g% ]# i( V l# Z* ?8 |' Z: u# J1 s
^/ B* W& Q; L6 y在一个基础菜单组中,当一个菜单的ShortcutMenu属性为TRUE时,这个菜单就是快捷菜单。你可以遵循"为一个菜单添加新的菜单项"中列出的步骤为快捷菜单增加菜单项。
% [/ n# L8 K$ M. r8 Z; f2 z
7 X$ K" ]2 l& K$ ]# w& R' \/ w3 N) i# b! w$ n8 R$ l
新的菜单组可能有也可能没有一个快捷菜单。要想为一个菜单组建立一个快捷菜单,须遵循"建立新菜单"一章中列出的指示,并且要把POP0做为这个新菜单的标签。 " o& H9 O# d) R5 E% B" B8 H2 G
0 ~6 E! |! k7 b1 l5 q! P* t. M# p1 v; c" x# E% m1 I2 D f; W+ C4 m
- l& p) @: g9 z# M1 x# s4 K. t
以下示例如何在右键菜单的末尾新增菜单项"OpenDWG".
( s9 F- D" G( _# p% l# r' Q9 U, ?9 Q. l$ ]% c% W/ N
4 K8 @2 f/ m$ ^* t$ O% a
Sub Ch6_AddMenuItemToshortcutMenu()
8 F% x5 N! N8 J( J; {1 q
6 T ^" `; [4 i7 `3 gDim currMenuGroup As AcadMenuGroup / Y$ Q l. p0 P& S. n6 x8 B
, M+ x1 J, S6 M4 s
Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0) 9 G/ y2 q# V) |5 U, P
& t% M6 G5 r6 x Y2 _! s- `' L( D/ R% o6 B, E3 X
6 u; [6 F/ P3 p1 p1 t! i, S" j9 T'找到快捷菜单并赋值它为shortcutMenu变量 1 I8 V! O, \- ~5 @) T
, l$ p8 f; J) u+ k$ @1 \) g
Dim scMenu As AcadPopupMenu
% v/ z% e/ ^* \6 ^- o
2 v5 c4 K! }% d0 S. wDim entry As AcadPopupMenu 6 G% a& ], ~1 U% ?
1 ?% N ~; e/ m) c' \
For Each entry In currMenuGroup.Menus
* k' s+ V' X% M
! q* t! p4 p: w" d& gIf entry.shortcutMenu = True Then
8 U& }8 m" ~) N) g# [ ^4 Q/ i/ U9 F+ ]5 \1 [" e
Set scMenu = entry
5 [2 R' d7 X) f6 z; o1 ^# g* [* q+ Y7 ?% d& K2 f4 L, O( u+ e$ t# J
End If
; U Y7 Z" m2 f9 d; l5 ?
. x* J. h* X% lNext entry
) i3 M: \! [2 I. E+ i8 Q0 V5 I6 J$ [" v1 z8 N
9 x$ p1 F" u* h, \0 K
6 R! s- s B1 A5 |5 S' 在快捷菜单中增加菜单项 ; H( l* [2 N: {- D. w% R, j x
6 S, V' M* E9 k0 [7 ?Dim newMenuItem As AcadPopupMenuItem 9 s, {$ {; I+ w2 J1 s7 H! d7 C3 p
# H! U6 ~; q+ `3 ?- _Dim openMacro As String 6 B1 v3 o% @; ^: g) a3 C: y# B$ C
) @1 c/ J2 W2 T5 m8 x- k8 g5 I
' 为宏赋值VBA表达式"ESC ESC _open "
9 l! J8 G ?& R( A0 j/ f5 T% Z2 C/ E% O& t! }! T
openMacro = Chr(3) + Chr(3) + Chr(95) + "open" + Chr(32)
4 J4 K% U4 m0 Y U/ U S# m; j7 g, e0 `+ r4 [1 z( }( x6 Z$ a
8 F8 K" g; D5 K% xSet newMenuItem = scMenu.AddMenuItem _ / c( s3 t/ l: |# b1 h
3 S) H3 D- R, z+ ~5 C; B* p
("", Chr(Asc("&")) _ : E/ s; I9 v4 K( p$ R# ?/ `
! v3 U3 B: ^0 A( g- j- h7 W
+ "OpenDWG", openMacro)
9 o" ^3 r8 j: B. `" b" [8 S v9 F6 `0 L/ O% V
End Sub |
|