QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
Sub AddASubMenu()9 l4 g8 Q. P9 T' Q* H
'获得当前的菜单组, [0 O5 t- v( x6 y
Dim currMenuGroup As AcadMenuGroup/ {9 `3 s8 G3 a; l: _/ R! r; R# G

# w/ N; V4 \, ?; }2 NSet currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)
9 r1 E, L& q. y/ V4 a6 M

1 |& S. Y) R% c+ L4 D6 x
创建新菜单
9 {; k4 b, p8 y% N7 W
7 j2 T/ V: f& K* Y
Dim newMenu As AcadPopupMenu
# w3 J+ @" w! D, I

5 b( p9 U7 v7 E: H4 Q# A3 W% YSet newMenu = currMenuGroup.Menus.Add("MyMen" & Chr(Asc("&")) & "u")

  I/ O4 X+ P; ~, [
3 I, l  Y' Q4 @' X( C'
添加菜单项

. j9 ^: D, G6 ~! ?' v4 ZDim macro As String* H4 ~- [4 v2 Y" V; |

' L$ J/ M# K# U. d7 rmacro = Chr(vbKeyEscape) + Chr(vbKeyEscape)
+ R) \& m2 H  Z1 I'
相当于按下两次Esc
' f8 O: J; V9 o0 A+ a5 H
  O. f0 ~2 D1 q* l6 y$ X

4 f) {9 C$ ~/ t2 v# s'draw(
含有子菜单)
5 o5 A$ e- O% h1 T9 d
: g/ e3 D6 M. a
Dim menuItemDraw As AcadPopupMenu
( c) J5 T: X' F$ M' x4 H' m4 G; b
7 r6 I! h% R7 m; U- j9 B4 O
Set menuItemDraw = newMenu.AddSubMenu(newMenu.Count + 1, Chr(Asc("&")) & _"Draw")
1 u" |- ?& w6 S4 V0 X8 w, ?$ V* m

9 h* A( P' _' e' w( B'
子菜单项目:line
4 H. V. M+ a% x

# L* b+ E3 G* v: U0 SDim subMenuItemLine As AcadPopupMenuItem
: E3 p& U6 O. H5 j

2 {( V7 p& T, v'Set subMenuItemLine = menuItemDraw.AddMenuItem(menuItemDraw.Count + 1, _Chr(Asc("&")) & "Line", macro & "_line ")

% O# r! j' |# t4 o
; \1 l" q( E- v. R* Q'
子菜单项目:Ellipse

6 T3 ]$ m2 o' N
+ U6 p- M* D. uDim subMenuItemEllipse As AcadPopupMenuItem
$ r% W# ~' K. d! a! l& p2 G5 L: p8 i

, ^/ g( X; N5 f; U. [$ ^2 S'Set.subMenuItemEllipse.=menuItemDraw.AddMenuItem(menuItemDraw.Count + 1, Chr(Asc("&")) & "Ellipse", macro & "_ellipse ")

: @. d5 Q8 C  q
6 a! n1 t$ c( W: c7 p3 K'
子菜单项目:arc
- \8 r" O) d! _) t
0 M3 ?2 R* U0 J) J
Dim subMenuItemArc As AcadPopupMenuItem
7 i! X4 a9 o# |  |" n. B: s

3 R0 I/ @' H1 [: g: q5 k8 _'Set subMenuItemArc = menuItemDraw.AddMenuItem(menuItemDraw.Count + 1, Chr(Asc("&")) & "Arc", macro & "_arc ")
: i3 J+ y' x3 h

# t" p% Z, S$ _'
子菜单项目:circle
/ d6 |# R: E* H( b) x: p/ u5 u6 d; V

, s. A% y. m2 O6 y; b# ^. _Dim subMenuItemCircle As AcadPopupMenuItem
/ z3 M' Q3 P+ `0 b6 t5 X
" ^6 M2 k8 H& o4 ]; x
'Set subMenuItemCircle = menuItemDraw.AddMenuItem(menuItemDraw.Count + 1, Chr(Asc("&")) & "Circle", macro & "_circle ")

9 ~9 P" o7 x1 R$ S% a- ^: B
+ B5 q8 a* q2 \! O'
子菜单项目:SPline
2 P. t" q3 S) ~0 ]

( z. X+ W" d7 i/ O- V, Y. CDim subMenuItemSPline As AcadPopupMenuItem
' D8 v) q/ O( G3 E
) v0 E0 v2 d, i& b% U  t
'Set subMenuItemSPline = menuItemDraw.AddMenuItem(menuItemDraw.Count + 1, Chr(Asc("&")) & "SPline", macro & "_spline ")

9 a& ?, Y% F: T- [( F5 l
: `& A% A  V& O  w) M+ A5 V7 O'
子菜单项目:Point

+ \" e; T/ `/ z
  F$ N; [" R% w3 N6 vDim subMenuItemPoint As AcadPopupMenuItem

- `7 Y2 K% i- ~, E3 y$ X, W( B
% U& [- x6 f* v'Set subMenuItemPoint = menuItemDraw.AddMenuItem(menuItemDraw.Count + 1, Chr(Asc("&")) & "Point", macro & "_point ")
' l5 A8 N( Z" w. R  P

! {6 V0 o3 A% `: |* `6 Y/ \& e4 r1 ~
'
在菜单栏上显示菜单
1 ]0 q  j- [' S6 r) I
# E" Y( [+ i- y& s' t$ U( |% z% I6 h
newMenu.InsertInMenuBar (ThisDrawing.Application.MenuBar.Count + 1)
! P$ b; b( l& l  Y
End Sub
" f3 y9 O9 S, d! T0 }* w( l - a+ ~1 |' n4 y+ k
/ y" j4 h# e& O* v: e1 M/ S' z5 K

9 D$ w) l% w; o! c这个程序哪有错的?
发表于 2012-2-14 16:59:29 | 显示全部楼层 来自: 中国贵州贵阳
我也想问,在cad中做个小插件,想从菜单里面把它打开怎么办~~
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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