QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
Sub AddASubMenu()
0 p- p% l" @, Y/ H$ K- ]'获得当前的菜单组* T+ b3 V8 [' G( c; l
Dim currMenuGroup As AcadMenuGroup
2 e* C$ R& X: F# }1 ], G' j; W* G9 E  r5 a, v
Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)
6 v; T2 a8 t6 l( b
0 }! N( Z3 T5 p2 ~9 C6 x
创建新菜单
4 J# e" @) [( Q" d) s0 w

$ e! l) @' M4 X6 y; I% t/ P3 lDim newMenu As AcadPopupMenu

  T  y" P0 P1 d$ Q0 }0 e& Q& q; U+ K  p, q
Set newMenu = currMenuGroup.Menus.Add("MyMen" & Chr(Asc("&")) & "u")

* Y$ t1 a; i, T
& x9 \8 @$ v: Y/ k'
添加菜单项

; D9 h! R4 Q! D7 KDim macro As String# z- m) h/ ?' C: m$ C
1 z$ x" h. H* C! X
macro = Chr(vbKeyEscape) + Chr(vbKeyEscape)6 \9 w: S7 a# C/ U5 [
'
相当于按下两次Esc
7 A8 u7 u+ N4 N+ Z- E# M- H5 I
1 X+ [' C  U" a3 G
( N! L4 J2 G: E8 N8 L
'draw(
含有子菜单)
3 ^4 k8 v% Q: N8 x

! B: g: y3 L5 W+ W, ODim menuItemDraw As AcadPopupMenu
/ d" [7 q& `; _1 }! h
0 T, E# `' E6 {) g- Z0 k
Set menuItemDraw = newMenu.AddSubMenu(newMenu.Count + 1, Chr(Asc("&")) & _"Draw")
3 E/ T$ X7 y6 Q& y* G" a& X( r
, i' @0 G; F5 @2 y/ _, M& M5 |
'
子菜单项目:line

( K* |& W# @( [, d2 y$ y3 v$ [& ]5 |9 ]  e# v! z" D: {7 o
Dim subMenuItemLine As AcadPopupMenuItem

% M3 B8 g6 J  f# H" l# ~
; F& {" d; Q# |0 W* q/ R'Set subMenuItemLine = menuItemDraw.AddMenuItem(menuItemDraw.Count + 1, _Chr(Asc("&")) & "Line", macro & "_line ")

/ G! x- s; ~+ W. D" S- E3 ?, T$ n, F% x9 Z. h& T
'
子菜单项目:Ellipse

  ?7 w3 r0 c7 J& j5 p7 r* Y% s$ E0 M
Dim subMenuItemEllipse As AcadPopupMenuItem
, n! w* Q2 T; r( I$ ?

9 h5 Q2 e! J! D% W6 D'Set.subMenuItemEllipse.=menuItemDraw.AddMenuItem(menuItemDraw.Count + 1, Chr(Asc("&")) & "Ellipse", macro & "_ellipse ")

0 A" K, W8 f# X
$ k2 |! G% V1 ?'
子菜单项目:arc
; W7 s! O4 P- O0 I
! ?; }. S% H# H3 ?# h2 k9 x! |$ G
Dim subMenuItemArc As AcadPopupMenuItem

/ d3 m( A3 y" j
) b4 `6 m7 Y3 D/ e% V  E- f'Set subMenuItemArc = menuItemDraw.AddMenuItem(menuItemDraw.Count + 1, Chr(Asc("&")) & "Arc", macro & "_arc ")
2 ~$ D: X; E0 k3 Z
$ l# i3 x# u, f. b
'
子菜单项目:circle
2 [: M6 ]# O: d8 y* t$ b

9 H. t8 `3 T# o" yDim subMenuItemCircle As AcadPopupMenuItem
, k' k# }8 A: t2 N( v/ H' E+ O

! x) S2 ^: a' C' K'Set subMenuItemCircle = menuItemDraw.AddMenuItem(menuItemDraw.Count + 1, Chr(Asc("&")) & "Circle", macro & "_circle ")

9 c+ e- L& Z1 n$ F4 }
+ @0 M" D' [, ~# D'
子菜单项目:SPline
) Q5 S- L, L, i+ _! E  e
- E) G* z$ s( N+ U
Dim subMenuItemSPline As AcadPopupMenuItem

% E, n$ E' Z" C& Z* _3 t; M4 l7 K' K8 F# D$ P  J& D! U' |- K
'Set subMenuItemSPline = menuItemDraw.AddMenuItem(menuItemDraw.Count + 1, Chr(Asc("&")) & "SPline", macro & "_spline ")
; K3 q6 U' Q7 Y8 g+ k. e

5 W$ [6 P+ U1 j5 y1 p! C7 v( b'
子菜单项目:Point
( H; M! R6 F# W6 F! e/ i4 _# w

% @% J8 w) b; B8 c& m$ \Dim subMenuItemPoint As AcadPopupMenuItem
* \7 H% t/ E3 X/ j) e2 J! B
: ?) \0 E$ ?5 ], o. @
'Set subMenuItemPoint = menuItemDraw.AddMenuItem(menuItemDraw.Count + 1, Chr(Asc("&")) & "Point", macro & "_point ")
  S2 x- Y3 M) q

3 D: r& E8 ?# J6 _8 B. _6 \1 X( a' S7 f
'
在菜单栏上显示菜单

' q. B* ~9 v" [& j
" ^: t  H6 u- `( nnewMenu.InsertInMenuBar (ThisDrawing.Application.MenuBar.Count + 1)
2 d/ P) u  p7 M* f
End Sub
/ E8 N# o6 q: C4 n
' ]% z9 q# [5 D5 v5 m
, E% x; O# w  g5 Y: R ( u4 M# c& W0 r. `
这个程序哪有错的?
发表于 2012-2-14 16:59:29 | 显示全部楼层 来自: 中国贵州贵阳
我也想问,在cad中做个小插件,想从菜单里面把它打开怎么办~~
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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