有无办法不使用设置visible为False而使用某个主菜单不显示(隐藏)?

hhyjy 2005-11-10 11:40:22
例如某窗口上有以下4个主菜单:
文件(&F) 编辑(&E) 视图(&V) 退出(&X)

名称分别为:
mnuFile mnuEdit mnuView mnuExit
有没有不使用mnuEdit.visible=false的办法而使用其它办法例如使用API达到让“编辑(E)”为不可见(隐藏)?
...全文
454 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
rainstormmaster 2005-11-12
  • 打赏
  • 举报
回复
实在不行就先删除,需要的时候在添加吧
hhyjy 2005-11-12
  • 打赏
  • 举报
回复
UP
northwolves 2005-11-11
  • 打赏
  • 举报
回复
呵呵,代码有问题,带子菜单的隐藏不了.
hhyjy 2005-11-11
  • 打赏
  • 举报
回复
1、 SetMenu r_form, 0 会隐藏整个主菜单,达不到目的
2、为什么不许用'mnuEdit.Visible = False?
在VB下写的一个菜单控件,自带菜单设计器,添加到窗口后运行时使用API根据设计器中的集合建立菜单,这样在其它开发工具中就不会因为使用的是VB.Menu对象而使这个控件不通用。
上楼效果是能达到,但实际上已删除了“编辑(E)”,实际上我还需要根据需要再显示出来,我想VB自身的使用mnuEdit.visible=false隐藏时应该没有删除它本身。
northwolves 2005-11-11
  • 打赏
  • 举报
回复
为什么不许用'mnuEdit.Visible = False?
-------------------------------------

Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
Private Const MF_REMOVE = &H1000

Private Sub Form_Load()
RemoveMenu GetMenu(hwnd), 2, MF_REMOVE
'mnuEdit.Visible = False
End Sub
shawls 2005-11-11
  • 打赏
  • 举报
回复
[名称] CallByName函数

[数据来源] 未知

[内容简介] 空

[源代码内容]

CallByName 函数



执行一个对象的方法,或者设置或返回一个对象的属性。

语法

CallByName(object, procedurename, calltype,[arguments()])

CallByName 函数的语法有以下部分:

部分 描述
object 必需的;变体型(对象)。函数将要执行的对象的名称。
procedurename 必需的;变体型(字符串)。一个包含该对象的属性名称或者方法名称的字符串表达式。
calltype 必需的;常数。一个 vbCallType 类型的常数,代表正在被调用的过程的类型。
arguments() 可选的:变体型(数组)。


说明

CallByName 函数用于获取或者设置一个属性,或者在运行时使用一个字符串名称来调用一个方法。

在下面的例子中,第一行使用 CallByName 来设置一个文本框的 MousePointer 属性,第二行得到 MousePointer 属性的值,第三行调用 Move 方法来移动文本框:

CallByName Text1, "MousePointer", vbLet, vbCrosshair
Result = CallByName (Text1, "MousePointer", vbGet)
CallByName Text1, "Move", vbMethod, 100, 100


以上代码保存于: SourceCode Explorer(源代码数据库)
复制时间: 2005-11-11 19:35:33
软件版本: 1.0.882
软件作者: Shawls
E-Mail: ShawFile@163.com
QQ: 9181729
hhyjy 2005-11-11
  • 打赏
  • 举报
回复
大家还有招没?
winehero 2005-11-10
  • 打赏
  • 举报
回复
Option Explicit


Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function SetMenu Lib "user32" (ByVal hwnd As Long, ByVal hMenu As Long) As Long


Private Sub Command1_Click()
'Timer1.Interval=1000
Dim r_form As Long

r_form = GetForegroundWindow() '获得当前的活动窗口的句柄
SetMenu r_form, 0 '隐藏其菜单


End Sub

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧