|
|
右键菜单或快捷菜单,是包含在AutoCAD基础菜单组中的特殊菜单。这个菜单只在用户按住SHIFT键并点击鼠标右键时才出现。 ; Y. q) }1 M6 ?9 W: w# V5 i. K
* U+ g2 B! y9 s: J
! F& C H9 @. ], t+ D z4 ?
在一个基础菜单组中,当一个菜单的ShortcutMenu属性为TRUE时,这个菜单就是快捷菜单。你可以遵循"为一个菜单添加新的菜单项"中列出的步骤为快捷菜单增加菜单项。
' |0 f8 Y1 ?& m0 d
' B% q- c, |$ y' S
+ `# A* a' L& P! @新的菜单组可能有也可能没有一个快捷菜单。要想为一个菜单组建立一个快捷菜单,须遵循"建立新菜单"一章中列出的指示,并且要把POP0做为这个新菜单的标签。
5 `) h: G4 f# c3 j, D4 \2 I6 d8 Q' N3 A* w
" s8 ]' z, M- d X$ _' p5 L9 g
8 I) T4 f [: T
以下示例如何在右键菜单的末尾新增菜单项"OpenDWG". 4 X- p: M' [: B
6 r2 p7 Q1 t/ E" m j: p, k4 ?& w8 ?1 S# o4 E
Sub Ch6_AddMenuItemToshortcutMenu()
- D4 N/ j1 u2 b( U! S; j4 {
. v8 ~* l5 G7 kDim currMenuGroup As AcadMenuGroup 3 p6 n- w1 R- F# k8 x
0 v9 |. X5 L. W) o! d
Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)
5 o2 K8 g0 c7 d" o% B0 Q U# E j0 x5 l& a3 ~% R
: M, \0 D, m+ a+ ]* H/ b4 J# H% p) E6 B# k7 @
'找到快捷菜单并赋值它为shortcutMenu变量 1 [/ ~" D j I* k! \% C/ ^7 G# T) ~% Z
- z0 s y8 W) L. Y- o9 \- D: a
Dim scMenu As AcadPopupMenu
* ~* T% Q1 H, O2 T8 x
: _" \9 W$ `0 j) n" dDim entry As AcadPopupMenu & ~" n5 r# g2 q
0 l0 x. _9 Q& ]; l( W0 V; d0 ? i
For Each entry In currMenuGroup.Menus ; e, J! |, f" f- |$ Y0 C
2 X/ i8 Z% X+ M9 b) [- ^6 @
If entry.shortcutMenu = True Then & H* `- e' x; B+ Q l7 H
: p! g2 [3 G7 G4 l3 YSet scMenu = entry 6 q# ]2 N) u4 j5 T% b) o, x. e
8 Z9 X* ^* o* O; S+ E4 h: E y0 K0 nEnd If 5 z o$ P! t4 H1 v0 E
' C) N. `' ?6 JNext entry $ s+ o6 d8 S! u( R
; d0 j% g" T5 x D P1 |, z
+ W& I1 `+ p& [. @$ Q! P# q* b P) D8 q! a) ]+ d+ U; \" s
' 在快捷菜单中增加菜单项 ' T( B; n7 J' {5 Q; D
; h4 F" N* B/ s6 l5 iDim newMenuItem As AcadPopupMenuItem
; \* p7 a1 e q* ~3 x& S' o
8 u% s _& w4 u4 h$ ~9 KDim openMacro As String
# T @" ^" G- Z* X8 E. ~# L( h, i' w N+ H
' 为宏赋值VBA表达式"ESC ESC _open "
; [$ R# I5 ?- {' s3 `. P
& ~; S& b" i% h1 o! |$ ^openMacro = Chr(3) + Chr(3) + Chr(95) + "open" + Chr(32)
0 Q( Q' Q3 d& Y, B. ~! N ]3 `; a) c1 K) _ b8 X! x5 A. z: U- I
2 e O8 N; j0 _- m5 ZSet newMenuItem = scMenu.AddMenuItem _ 8 p$ p; J/ r! l R
5 I x0 U% ]+ S7 u("", Chr(Asc("&")) _ , l! O0 D1 {( e/ k
1 v4 q8 {" Q/ D! D1 E+ K6 J) [, a
+ "OpenDWG", openMacro)
, f8 v6 T. O1 h- B
2 ~6 y' J9 Z/ y1 p0 _End Sub |
|