热情软件屋

 

如何能使MOUSE移到菜单上,任务栏上出现提示信息


编号:QA002647
建立日期: 2000年2月28日 最后修改日期:2003年1月7日
所属类别:

gmc:
    操作系统:win95
    编程软件:vb6.0企业版
    问题:如何能使MOUSE移到菜单上,任务栏上出现提示信息?

回答:

    当用户的鼠标移动到菜单上,Windows会发送WM_MENUSELECT消息。可惜,VB没有提供对应的事件。你需要自己截取该消息,参考QA000634 "如何在VB中截取Windows消息"
    
    心海的意见:
    实现的源代码如下(使用了mbocx32b.zipMSGBLST32.OCX控件):
    VERSION 5.00
    Object = "{3E0E9321-C743-11D0-8A5E-0020AFEEAE87}#1.0#0"; "MSGBLST32.OCX"
    Begin VB.Form Form1
     BorderStyle = 4 'Fixed ToolWindow
     Caption = "菜单信息提示程序"
     ClientHeight = 1995
     ClientLeft = 150
     ClientTop = 375
     ClientWidth = 4680
     LinkTopic = "Form1"
     MaxButton = 0 'False
     MinButton = 0 'False
     ScaleHeight = 1995
     ScaleWidth = 4680
     StartUpPosition = 2 '屏幕中心
     Begin VB.TextBox Text1
     Height = 1455
     Left = 120
     Locked = -1 'True
     MultiLine = -1 'True
     TabIndex = 1
     Text = "Form1.frx":0000
     Top = 120
     Width = 4335
     End
     Begin MSGBLST32LibCtl.Msgblst32 Msgblst321
     Left = 4080
     Top = 1560
     _Version = 65536
     _ExtentX = 609
     _ExtentY = 661
     _StockProps = 2
     End
     Begin VB.Label Label1
     BackStyle = 0 'Transparent
     Caption = "就绪"
     Height = 255
     Left = 120
     TabIndex = 0
     Top = 1680
     Width = 4335
     End
     Begin VB.Menu file
     Caption = "文件"
     Begin VB.Menu new
     Caption = "新建"
     End
     End
     Begin VB.Menu about
     Caption = "关于"
     Begin VB.Menu tyu
     Caption = "帮助"
     End
     End
    End
    Attribute VB_Name = "Form1"
    Attribute VB_GlobalNameSpace = False
    Attribute VB_Creatable = False
    Attribute VB_PredeclaredId = True
    Attribute VB_Exposed = False
    '----------------------------------------------
    '新海编写,dll文件来源于http://www.vchelp.com
    '欢迎广大vb爱好者与我交流学习经验
    'E_mail:fxh@astd.com.cn
    '-----------------------------------------------
    Option Explicit
     Const WM_MENUSELECT = &H11F
    
     Private Sub Form_Load()
     Msgblst321.hWndTarget = hwnd
     Msgblst321.MsgList(0) = WM_MENUSELECT
     End Sub
    
    Private Sub Msgblst321_Message(ByVal MsgVal As Long, ByVal wParam As Long, ByVal lParam As Long, lplRetVal As Long)
     If InStr(Text1, Str(wParam)) = 0 And wParam <> -65536 Then
     Text1 = Text1 & Chr(13) & Chr(10) & Str(wParam)
     End If
     Select Case wParam
     Case -2138046464
     '可在此加入控制程序
     Label1.Caption = "文件管理"
     Case -2139095038
     Label1.Caption = "新建一个文挡"
     Case -2138046463
     Label1.Caption = "关于本软件"
     Case -2139095036
     Label1.Caption = "系统帮助信息"
     Case -65536
     Label1.Caption = "就绪"
     End Select
    End Sub
    
    godhelpu的意见:
    您可以使用data dynamics公司的activebar控件,它带有mouseenter和mouseexit事件,而且可以用它同时制作菜单,工具栏和状态栏。只需1行代码即可实现您所要求的功能。
    
    相关问题:
    QA000047 "在VC++中,如何实现类似PowerBuilder中菜单对象的Select事件"

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio