如何能使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事件"
此问题由李海回答。
| |
|
|
| |
|
|