ybhfau 发表于 2006-2-6 16:40:00

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

如何将菜单项与窗体关联?
<P>我新建立了一个工程,然后在autocad对象中的thisdrawing内编写了一个菜单,其中有一个菜单项为“水力解析”,然后再在窗体中新创建了一个窗体“slph”,该窗体功能为进行水力平衡计算,我想要得结果是:单我点击菜单项“水力解析”时,自动将窗体“slph”调出显示,但是我发现无法与我的窗体关联!代码如下:请高手指教</P>
<P>Option Explicit</P>
<P>Sub Ch6_AddAMenuItem()<BR>Dim currMenuGroup As AcadMenuGroup<BR>Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)</P>
<P>' 建立一个新菜单<BR>Dim newMenu As AcadPopupMenu<BR>Set newMenu = currMenuGroup.Menus.Add("灌溉")</P>
<P>' 在新菜单中增加菜单项<BR>Dim newMenuItem As AcadPopupMenuItem<BR>Dim openMacro, openMacro1, openMacro2, openMacro3, openMacro4 As String</P>
<P>' 赋值宏字符串并创建菜单项<BR>openMacro = Chr(3) + Chr(3) + Chr(95) + "open" + Chr(32)<BR>openMacro1 = Chr(3) + Chr(3) + Chr(95) + "close" + Chr(32)<BR>openMacro2 = Chr(3) + Chr(3) + Chr(95) + "saveas" + Chr(32)<BR>openMacro3 = Chr(3) + Chr(3) + Chr(95) + "quit" + Chr(32)<BR><FONT color=#ff0000>openMacro4 = slphform.Show </FONT><FONT color=#0909f7>'就是她提示变量未定义,我觉得不需要呀,如果有很多的窗体需要调用难道都要定义??????<BR></FONT>Set newMenuItem = newMenu.AddMenuItem(newMenu.Count + 1, _<BR>"打开", openMacro)<BR>Set newMenuItem = newMenu.AddMenuItem(newMenu.Count + 1, _<BR>"关闭当前图形", openMacro1)<BR>Set newMenuItem = newMenu.AddMenuItem(newMenu.Count + 1, _<BR>"另存为...", openMacro2)<BR>Set newMenuItem = newMenu.AddMenuItem(newMenu.Count + 1, _<BR>"关闭AUTOCAD", openMacro3)<BR>Set newMenuItem = newMenu.AddMenuItem(newMenu.Count + 1, _<BR>"水力计算", openMacro4)</P>
<P>' 在菜单条上显示菜单<BR>newMenu.InsertInMenuBar _<BR>(ThisDrawing.Application.MenuBar.Count + 1)<BR>End Sub</P>
<P>请那位高手能够解答,多谢了!</P>
<P><A href="mailto:ybhfau@sina.com" target="_blank" >ybhfau@sina.com</A></P>

雪山飞狐_lzh 发表于 2006-2-8 18:15:00

<P>写一个宏,然后调用它:</P>
<P>sub tt()</P>
<P><FONT color=#ff0000>slphform.Show </FONT></P>
<P>end sub</P>

ybhfau 发表于 2006-2-9 10:51:00

<P>我建立了一个模块,然后输入了代码:</P>
<P>sub slph4()</P>
<P><FONT color=#ff0000>slph.Show </FONT></P>
<P>end sub</P>
<P>然后在相应的thisdrawing内编写:<FONT color=#ff0000>openMacro4 = "slph4"</FONT></P>
<P><FONT color=#ff0000>可是运行后出现:_vbaman 正在初始化 VBA 系统...</FONT></P>
<P><FONT color=#ff0000>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; slph4</FONT></P>
<P><FONT color=#ff0000>然后就没有反应了,窗体并没有出现呀!</FONT></P>
<P><FONT color=#ff0000>然后我将代码更改为openMacro4 = hr(3) + Chr(3) + Chr(95) + "slph4" + Chr(32)</FONT></P>
<P><FONT color=#ff0000>然后运行的时候出现:_slph4 未知命令</FONT></P>
<P><FONT color=#ff0000>斑竹,是不是我那个地方出错了?</FONT>&nbsp;</P>

雪山飞狐_lzh 发表于 2006-2-9 23:26:00

<P><FONT color=#ff0000>试试下列代码类似的:</FONT></P>
<P><FONT color=#ff0000>openMacro4 ="-vbarun slph4 "</FONT></P>

ybhfau 发表于 2006-2-10 10:41:00

<P>可以是可以啦,但是每次启动的时候都出现宏的对话窗口,让你选择需要运行的宏,选择完后窗体才出现。</P>
<P>有没有方法可以不出现选择运行宏的对话框而直接运行窗体?</P>
<P>多谢斑竹!</P>
<P>&nbsp;</P>

雪山飞狐_lzh 发表于 2006-2-10 12:58:00

<P><FONT color=#ff0000>试试:</FONT></P>
<P><FONT color=#ff0000>openMacro4 ="(command ""-vbarun"" ""slph4"")"</FONT></P>

ybhfau 发表于 2006-2-10 13:47:00

可以拉,运行之后指需要敲下回车就可以出现所要窗体了!

ever-eagle 发表于 2006-5-29 19:08:00

<P>真不错! 真在找这个!</P>
<P>不过菜单项多,弹出的窗体也多时,岂不是要定义很多模块,很多字符串,能集成下吗?</P>
<P>多谢<A name=82854><FONT color=#990000><B>lzh741206</B></FONT></A>了!</P>

ever-eagle 发表于 2006-5-29 19:44:00

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

中世纪骑士 发表于 2006-8-17 16:12:00

看了这很久以前的帖子,我遇到问题也解决了,多谢斑竹,也多谢发帖的朋友!
页: [1] 2
查看完整版本: 如何将菜单项与窗体关联?