QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
Sub AddASubMenu()
6 `$ Q. C' b5 ^7 ?: z'获得当前的菜单组
3 l0 b: W3 C& ~) q" e) _Dim currMenuGroup As AcadMenuGroup) s  a5 B/ w  l

3 b( z' N0 `& \4 bSet currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)

/ ^9 I( G) r7 p7 B
1 ^0 d# ^9 A' ?( ~1 J% D; I
创建新菜单
& I. p- [! K" ~$ v, x0 ]4 q

5 a! f' q7 u, e8 O* D  TDim newMenu As AcadPopupMenu
+ g& s$ s* Z5 E! U1 F  R3 E

& ]. j  O0 ?8 f) ?Set newMenu = currMenuGroup.Menus.Add("MyMen" & Chr(Asc("&")) & "u")

& R$ e- p7 O9 j7 z: B( Q
/ ?  g, Y6 E2 G* f: @' B: _9 h'
添加菜单项

1 w; `; T2 s+ ]Dim macro As String* f5 B) @0 y/ H' n& g+ N
1 i: \4 E9 G8 d+ Y8 F3 ^! m9 a
macro = Chr(vbKeyEscape) + Chr(vbKeyEscape)- S$ t: x3 Z8 X8 b; l
'
相当于按下两次Esc

/ a) L5 X: r) H; {) P. q
* g0 J4 Y  B' d7 r; |- q& f! Y5 U* f% c/ I
'draw(
含有子菜单)

1 H- r, f" U8 P. a. K) `2 L& @& z! y
& Q* S" N/ E* x, D2 ODim menuItemDraw As AcadPopupMenu

. I* D" x+ v/ ~
# U" \5 J3 T& g7 |Set menuItemDraw = newMenu.AddSubMenu(newMenu.Count + 1, Chr(Asc("&")) & _"Draw")
# W6 v* ?+ c$ [

, [9 C! R, A- J# {6 k" H$ {2 M'
子菜单项目:line

: p5 R$ _* \9 ~) m
/ K$ r0 w$ T) n0 V6 q1 h9 Z1 ^; EDim subMenuItemLine As AcadPopupMenuItem

1 R2 o  X5 @3 k/ b: `7 j  p7 P* i& k" e1 r
'Set subMenuItemLine = menuItemDraw.AddMenuItem(menuItemDraw.Count + 1, _Chr(Asc("&")) & "Line", macro & "_line ")
8 F+ T; A2 n( C/ G
( t, M4 q. C' I5 d1 \
'
子菜单项目:Ellipse

* G7 d& ?) I: h- |' W7 z2 g" E2 E
. }& Z; S8 B. `, B8 s% ^$ ^Dim subMenuItemEllipse As AcadPopupMenuItem
5 ~- V3 I' N5 d+ o
* s) `6 v: Y" E
'Set.subMenuItemEllipse.=menuItemDraw.AddMenuItem(menuItemDraw.Count + 1, Chr(Asc("&")) & "Ellipse", macro & "_ellipse ")
6 R. U9 Z, R8 |" w& X

5 b" T1 q2 C& ?/ @'
子菜单项目:arc
3 P9 H2 {* k- \  Z# m3 s& Z
, d" I) F8 O' s% h: ]6 ]
Dim subMenuItemArc As AcadPopupMenuItem
9 l5 t( L4 B! c& N" H" {" y( m& o

9 J4 e' N6 @" @'Set subMenuItemArc = menuItemDraw.AddMenuItem(menuItemDraw.Count + 1, Chr(Asc("&")) & "Arc", macro & "_arc ")
% }0 Z+ k, A' |& L$ F3 g  _) k

. t5 F% T/ `+ e' U! @7 W, {! b) P'
子菜单项目:circle
4 `% H& R- Q4 c/ F* h
( T8 `  V2 i) \4 u& j& c
Dim subMenuItemCircle As AcadPopupMenuItem

$ i" L, ~) g$ {7 o; R7 @* f; r
; F: P9 J7 y/ [4 _'Set subMenuItemCircle = menuItemDraw.AddMenuItem(menuItemDraw.Count + 1, Chr(Asc("&")) & "Circle", macro & "_circle ")
, u/ J8 I' o% B) q" ]# T+ f
6 I; J* }% z1 F3 t5 T. ?
'
子菜单项目:SPline

* B# i4 d& E$ @  Q* X5 O- `: z  V# y( J. i, ?. e. [5 ^
Dim subMenuItemSPline As AcadPopupMenuItem

2 F& g$ ]  a7 ~( b. y. L8 c2 I
'Set subMenuItemSPline = menuItemDraw.AddMenuItem(menuItemDraw.Count + 1, Chr(Asc("&")) & "SPline", macro & "_spline ")

5 P7 D3 g- ?5 `0 @! Y3 G# T& N% |) [- M. `! D% a7 X8 t
'
子菜单项目:Point
( @# c- J* T; q, J% P* K

* g" W; x8 a5 x7 [6 Z3 ]* DDim subMenuItemPoint As AcadPopupMenuItem
9 s. O1 l* z8 M
# H7 d8 H; t/ @8 s) ~
'Set subMenuItemPoint = menuItemDraw.AddMenuItem(menuItemDraw.Count + 1, Chr(Asc("&")) & "Point", macro & "_point ")
' }, e  D- \! e4 V/ M5 G$ U& Q
0 m: I) u3 B. z( x, q, O

) ^1 T$ ^/ ?# ^/ g& P4 }; [7 M% _8 L) V'
在菜单栏上显示菜单
- {7 h9 _+ x, r# g& j

! U/ b3 O9 N1 \" W5 X. L7 PnewMenu.InsertInMenuBar (ThisDrawing.Application.MenuBar.Count + 1)
% n% E. i' h# j4 {% N8 v) U# p
End Sub
7 e) Q' q% P* D , M+ v# k5 T  V+ F1 Z$ n
# ?6 m8 [% W2 d8 Z5 f0 w

# H- h" h2 `* B- W这个程序哪有错的?
发表于 2012-2-14 16:59:29 | 显示全部楼层 来自: 中国贵州贵阳
我也想问,在cad中做个小插件,想从菜单里面把它打开怎么办~~
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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