|
|
右键菜单或快捷菜单,是包含在AutoCAD基础菜单组中的特殊菜单。这个菜单只在用户按住SHIFT键并点击鼠标右键时才出现。 # ^2 n0 s7 h% i
( W- z {+ p; D9 B1 |5 [: I
. [/ @: Z6 l# v, P在一个基础菜单组中,当一个菜单的ShortcutMenu属性为TRUE时,这个菜单就是快捷菜单。你可以遵循"为一个菜单添加新的菜单项"中列出的步骤为快捷菜单增加菜单项。
" j4 q) P) E" X5 r4 Q0 o& S. Z2 j. M( Y# F) e
3 d0 u6 R% e/ b _' E) J
新的菜单组可能有也可能没有一个快捷菜单。要想为一个菜单组建立一个快捷菜单,须遵循"建立新菜单"一章中列出的指示,并且要把POP0做为这个新菜单的标签。
# \. H) ^- B4 H$ u8 d0 Y# K+ h. I0 `5 n% ^" ^
z" W4 R( O& f7 F* r
: H: c6 O) n j# Q2 j
以下示例如何在右键菜单的末尾新增菜单项"OpenDWG". . r7 z Y. g# x( F7 f( s8 t, J, X
" P, E& z8 S2 [( U- S" ]) j3 S+ ^
Sub Ch6_AddMenuItemToshortcutMenu()
" x2 i1 E( b& b/ [
- f, a5 N" n+ E' C3 C& y% qDim currMenuGroup As AcadMenuGroup
5 Y- W9 }* s6 J4 n* E
/ }+ c. j3 K* ^- f( gSet currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0) : C8 T" Q" w" ?2 M( C
; a* y: {) i1 r6 l4 ?! l' w: P! k2 m9 l6 ~
; y+ t ~" b2 f, h3 F8 k
'找到快捷菜单并赋值它为shortcutMenu变量 5 f4 v1 n4 X0 w1 X+ q; _
& U" }6 p3 B9 ?# [, h( ~Dim scMenu As AcadPopupMenu
" u3 T. J, a2 C% m, D/ ]* P) p7 }! [# p6 C* k
Dim entry As AcadPopupMenu $ L4 s% k# M- u- ]' m
7 ^1 P0 w2 ]* hFor Each entry In currMenuGroup.Menus
" ?1 R" D# W- L7 M. M# G9 t) x% c* J3 Z
If entry.shortcutMenu = True Then
* E4 Q, K3 R& l
( g( r/ n# Z2 G6 b" `Set scMenu = entry
% }+ G9 O$ N8 m7 w
: T- w# e- l8 AEnd If : A8 v2 w/ v( V5 b3 Y/ q5 j
! G) r- ]( J! _Next entry 7 H4 j/ ]. u! t) f5 j6 D0 u
6 U- h, v5 c7 J' n+ U d4 W \: D m
* F# X& R T7 k3 e: q9 M/ h$ j
# A. w( L9 c9 Q' 在快捷菜单中增加菜单项
) Z9 w$ k! w0 i
+ d+ D+ Q# r& _4 O$ H3 `Dim newMenuItem As AcadPopupMenuItem : Z9 V; n* k- z* `3 ^& o
/ Z) w5 H3 w8 a$ K% f U7 S
Dim openMacro As String
( {3 e5 g0 \2 X
& e4 Q4 V+ f& W2 c ^, p) n9 T8 |' 为宏赋值VBA表达式"ESC ESC _open "
$ a; M) o! l3 t$ E% q( ? [
8 s: ^8 S& J# {2 AopenMacro = Chr(3) + Chr(3) + Chr(95) + "open" + Chr(32) + [$ F( C' n, ?1 U8 R$ Y+ O
$ O& R! r+ l) j
6 {' \* \+ M4 h! W8 f2 T1 ZSet newMenuItem = scMenu.AddMenuItem _ * ]. \3 o" W- l5 m. ~
6 Q) l K0 h& ^& e
("", Chr(Asc("&")) _
7 d1 e9 O% E0 k
* p9 u+ Z8 V5 M* V+ "OpenDWG", openMacro)
, G/ Z/ E& V- v0 _" A
9 [5 {: h5 X- W8 \3 A1 AEnd Sub |
|