QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 2672|回复: 1
收起左侧

cad vba二次开发创建菜单问题求助

[复制链接]
发表于 2011-5-29 12:11:34 | 显示全部楼层 |阅读模式 来自: 中国河北保定

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
Sub AddASubMenu()" u  Z; [# O5 [+ E
'获得当前的菜单组
& D$ E% J' X0 UDim currMenuGroup As AcadMenuGroup' ~3 B' u5 N/ ^: ?* Q- ~" Z2 [
0 L+ K6 m) E5 ~8 W# M8 a
Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)
" c* h2 B7 N+ u, `8 u+ t

" i6 Y, q3 @4 H
创建新菜单

! ^" ^' V" u3 V3 _
* f( p  [: w7 ^9 ]Dim newMenu As AcadPopupMenu

' K+ Q/ h" a# S& ?  Z. o( F: I/ I1 q8 A5 ?! s9 x2 v6 j
Set newMenu = currMenuGroup.Menus.Add("MyMen" & Chr(Asc("&")) & "u")

4 x+ J$ l4 ?0 v; _) K
9 a6 D& m: d5 c'
添加菜单项
+ j2 {  M5 d6 i
Dim macro As String
( K2 p- d: r0 {: C* K  m% Y, f( x% ~" J+ v* Z4 l
macro = Chr(vbKeyEscape) + Chr(vbKeyEscape)1 T0 f7 @3 m3 y+ q
'
相当于按下两次Esc
8 U  j! j- o# J: `# z4 w
9 m5 y( W7 y9 r; s, ~
9 [7 L' r/ Y, X
'draw(
含有子菜单)

9 e6 a% w+ h3 p. Y( e1 |9 n! L0 M
* f  A8 V6 w4 Z$ P3 T0 o# eDim menuItemDraw As AcadPopupMenu
( I" U3 |9 J& D- W

+ q& q/ r2 Z; m& i9 P% g! i2 X' MSet menuItemDraw = newMenu.AddSubMenu(newMenu.Count + 1, Chr(Asc("&")) & _"Draw")
8 T1 g  r. p* ~$ |% u' c

2 I0 y! W9 i0 h& ~; Z'
子菜单项目:line
. k- j4 G  `9 X8 U' W8 ?. J

" y* l! X7 x* L! k7 r: V) o" t! P5 xDim subMenuItemLine As AcadPopupMenuItem

4 M* M) f! c. I+ l- l( E7 _* \8 ~, t& Q. s' f( n; ]; `
'Set subMenuItemLine = menuItemDraw.AddMenuItem(menuItemDraw.Count + 1, _Chr(Asc("&")) & "Line", macro & "_line ")
3 \/ l' v7 O0 C3 C- f( ^9 c  D
+ U) P3 T! }6 ~; M. m
'
子菜单项目:Ellipse

- |7 J' X# ^  K& C
( D1 k4 ?2 W) j, y4 L3 S( _Dim subMenuItemEllipse As AcadPopupMenuItem

% R3 W9 a4 M4 S7 ~9 R8 M: g( q- D/ c: J$ `5 A
'Set.subMenuItemEllipse.=menuItemDraw.AddMenuItem(menuItemDraw.Count + 1, Chr(Asc("&")) & "Ellipse", macro & "_ellipse ")
/ d/ j$ b* Y2 [, @

, g0 E' b% W7 M$ d  H4 u8 l7 n2 }'
子菜单项目:arc
4 s3 {& u" ~7 O2 `
: B% S( ~1 Y, i4 {
Dim subMenuItemArc As AcadPopupMenuItem
8 X" J+ D4 d: i& K5 K* n8 ~

, [5 ~/ j9 a- U  J: \) q'Set subMenuItemArc = menuItemDraw.AddMenuItem(menuItemDraw.Count + 1, Chr(Asc("&")) & "Arc", macro & "_arc ")
. g. \" v* A! j9 G* \, W
7 K5 h/ D5 J' I; Q0 p7 g; G
'
子菜单项目:circle

, O0 a* s2 u* K) \$ v9 h. O
9 p& a* U* M# G) |8 V1 B8 zDim subMenuItemCircle As AcadPopupMenuItem
* x3 w4 o, [$ w( S% r7 t

, b; `) s* S( f! {# F'Set subMenuItemCircle = menuItemDraw.AddMenuItem(menuItemDraw.Count + 1, Chr(Asc("&")) & "Circle", macro & "_circle ")
8 \* p9 g0 Y  B8 |
) B6 q$ p* R" ~! Z
'
子菜单项目:SPline

7 t. c0 x* [3 X' E( h3 f' ?
$ j1 V3 Y+ f- u/ l1 P6 G9 vDim subMenuItemSPline As AcadPopupMenuItem
, |) }( f1 O% P5 n4 R  r% N! U0 S
' Y: A7 @" @9 N) w! X7 X; V- e
'Set subMenuItemSPline = menuItemDraw.AddMenuItem(menuItemDraw.Count + 1, Chr(Asc("&")) & "SPline", macro & "_spline ")

  J6 Z: K" `/ H- ~0 E4 X- G1 K: i0 b$ ~- l/ X7 m8 k
'
子菜单项目:Point

5 y- ^$ J  V  ]' x0 R6 s- C: m+ Y, a0 k4 ^1 D, @# j: Z  i
Dim subMenuItemPoint As AcadPopupMenuItem

- w- s) e" U0 N$ U' T+ ^$ G9 j! g* e/ _$ ^8 C$ g, D
'Set subMenuItemPoint = menuItemDraw.AddMenuItem(menuItemDraw.Count + 1, Chr(Asc("&")) & "Point", macro & "_point ")

+ H& T& h4 ]9 N
# Q6 g2 M* X8 H& [2 a. T
) I+ d( I. ?/ z* P6 e% {: ^0 G( B'
在菜单栏上显示菜单
9 |$ c7 g, r5 m( l; `' u8 E2 d
% U& J# N. Y. ]% `* e6 h! z8 E
newMenu.InsertInMenuBar (ThisDrawing.Application.MenuBar.Count + 1)
6 U; q$ O  n/ M& K
End Sub
% \* d" @$ g* G, q9 n+ b3 P$ {) M
' Y0 g% X  y; D6 w4 p  ]! I
' G: t& Y/ }' U$ M$ b) @ % I) N0 P$ j& ?  Z5 T& p, ^( Y
这个程序哪有错的?
发表于 2012-2-14 16:59:29 | 显示全部楼层 来自: 中国贵州贵阳
我也想问,在cad中做个小插件,想从菜单里面把它打开怎么办~~
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

快速回复 返回顶部 返回列表