明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3240|回复: 10

如何将菜单项与窗体关联?

[复制链接]
发表于 2006-2-6 16:40:00 | 显示全部楼层 |阅读模式
如何将菜单项与窗体关联?

我新建立了一个工程,然后在AutoCAD对象中的thisdrawing内编写了一个菜单,其中有一个菜单项为“水力解析”,然后再在窗体中新创建了一个窗体“slph”,该窗体功能为进行水力平衡计算,我想要得结果是:单我点击菜单项“水力解析”时,自动将窗体“slph”调出显示,但是我发现无法与我的窗体关联!代码如下:请高手指教

Option Explicit

Sub Ch6_AddAMenuItem()
Dim currMenuGroup As AcadMenuGroup
Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)

' 建立一个新菜单
Dim newMenu As AcadPopupMenu
Set newMenu = currMenuGroup.Menus.Add("灌溉")

' 在新菜单中增加菜单项
Dim newMenuItem As AcadPopupMenuItem
Dim openMacro, openMacro1, openMacro2, openMacro3, openMacro4 As String

' 赋值宏字符串并创建菜单项
openMacro = Chr(3) + Chr(3) + Chr(95) + "open" + Chr(32)
openMacro1 = Chr(3) + Chr(3) + Chr(95) + "close" + Chr(32)
openMacro2 = Chr(3) + Chr(3) + Chr(95) + "saveas" + Chr(32)
openMacro3 = Chr(3) + Chr(3) + Chr(95) + "quit" + Chr(32)
openMacro4 = slphform.Show '就是她提示变量未定义,我觉得不需要呀,如果有很多的窗体需要调用难道都要定义??????
Set newMenuItem = newMenu.AddMenuItem(newMenu.Count + 1, _
"打开", openMacro)
Set newMenuItem = newMenu.AddMenuItem(newMenu.Count + 1, _
"关闭当前图形", openMacro1)
Set newMenuItem = newMenu.AddMenuItem(newMenu.Count + 1, _
"另存为...", openMacro2)
Set newMenuItem = newMenu.AddMenuItem(newMenu.Count + 1, _
"关闭AUTOCAD", openMacro3)
Set newMenuItem = newMenu.AddMenuItem(newMenu.Count + 1, _
"水力计算", openMacro4)

' 在菜单条上显示菜单
newMenu.InsertInMenuBar _
(ThisDrawing.Application.MenuBar.Count + 1)
End Sub

请那位高手能够解答,多谢了!

ybhfau@sina.com

发表于 2006-2-8 18:15:00 | 显示全部楼层

写一个宏,然后调用它:

sub tt()

slphform.Show

end sub

 楼主| 发表于 2006-2-9 10:51:00 | 显示全部楼层

我建立了一个模块,然后输入了代码:

sub slph4()

slph.Show

end sub

然后在相应的thisdrawing内编写:openMacro4 = "slph4"

可是运行后出现:_vbaman 正在初始化 VBA 系统...

                           slph4

然后就没有反应了,窗体并没有出现呀!

然后我将代码更改为openMacro4 = hr(3) + Chr(3) + Chr(95) + "slph4" + Chr(32)

然后运行的时候出现:_slph4 未知命令

斑竹,是不是我那个地方出错了? 

发表于 2006-2-9 23:26:00 | 显示全部楼层

试试下列代码类似的:

openMacro4 ="-vbarun slph4 "

 楼主| 发表于 2006-2-10 10:41:00 | 显示全部楼层

可以是可以啦,但是每次启动的时候都出现宏的对话窗口,让你选择需要运行的宏,选择完后窗体才出现。

有没有方法可以不出现选择运行宏的对话框而直接运行窗体?

多谢斑竹!

 

发表于 2006-2-10 12:58:00 | 显示全部楼层

试试:

openMacro4 ="(command ""-vbarun"" ""slph4"")"

 楼主| 发表于 2006-2-10 13:47:00 | 显示全部楼层
可以拉,运行之后指需要敲下回车就可以出现所要窗体了!
发表于 2006-5-29 19:08:00 | 显示全部楼层

真不错! 真在找这个!

不过菜单项多,弹出的窗体也多时,岂不是要定义很多模块,很多字符串,能集成下吗?

多谢lzh741206了!

发表于 2006-5-29 19:44:00 | 显示全部楼层

Set newMenuItem = newMenu.AddMenuItem(newMenu.Count + 1, _
"打开", "-vbarun slph4 ")   这个语句可以用,就是要敲回车键,这个openMacro4 ="(command ""-vbarun"" ""slph4"")"直接运行的,该怎样写呢?  不想再定义字符串!


 

发表于 2006-8-17 16:12:00 | 显示全部楼层
看了这很久以前的帖子,我遇到问题也解决了,多谢斑竹,也多谢发帖的朋友!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-27 00:18 , Processed in 0.272299 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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