VB-Homepage Tipp 121

MSGHOOK - Zur Laufzeit veränderbare Menüeinträge

... und ein weiterer Tipp zur Nutzung der MSGHOOK.VBX.

Menüeinträge müssen Sie normalerweise zur Designzeit erstellen, Sie können Sie visible und enable setzen, den eigentlichen Text des Menüeintrages können Sie aber zur Laufzeit nicht mehr verändern.
Aber doch, wenn Sie eine solche Funktionalität für Ihr Projekt benötigen, dann ist dies Ihr Tipp. Und wieder macht es die MSGHOOK.VBX möglich.

initmenu.mak
INITMENU.FRM
MSGHOOK.VBX
ProjWinSize=212,204,261,215
ProjWinShow=2
IconForm="Form1"
Title="INITMENU"
ExeName="INITMENU.EXE"

initmenu.frm
VERSION 2.00
Begin Form Form1
Caption = "Menüeintrag verändern"
ClientHeight = 1860
ClientLeft = 1320
ClientTop = 2010
ClientWidth = 5205
Height = 2550
Left = 1260
LinkTopic = "Form1"
ScaleHeight = 1860
ScaleWidth = 5205
Top = 1380
Width = 5325
Begin MsgHook MsgHook
Left = 120
Top = 120
End
Begin TextBox Text1
Height = 285
Left = 120
TabIndex = 0
Text = "Ändere den Text und sieh ins Menü"
Top = 720
Width = 4935
End
Begin Menu mnuFile
Caption = "&Datei"
Begin Menu mnuFileText
Caption = "<<>>"
End
Begin Menu mnuFileSep10
Caption = "-"
End
Begin Menu mnuFileExit
Caption = "E&nde"
End
End
End
Option Explicit
' Windows contant
Const WM_INITMENUPOPUP = &H117
Sub Form_Load ()
' Setup MsgHook
MsgHook.HwndHook = Me.hWnd
MsgHook.Message(WM_INITMENUPOPUP) = True
End Sub
Sub mnuFileExit_Click ()
Unload Me
End Sub
Sub mnuFileText_Click ()
Dim msg As String
msg = "Dieses Programm zeigt Ihnen, wie Sie"
msg = msg & " einen Menüeintrag zur Laufzeit ändern können."
MsgBox msg
End Sub
Sub MsgHook_Message (msg As Integer, wParam As Integer, lParam As Long, result As Long)
If msg = WM_INITMENUPOPUP Then
' Update menu text if index = 0 (File menu)
If (lParam And &HFFFF&) = 0 Then
mnuFileText.Caption = Text1
result = 0
End If
End If
End Sub

Wenn Sie diesen Tipp nutzen möchten, erstellen Sie mit einem Editor
Dateien die Sie wie angegeben benennen und fügen den Code ein.
Desweiteren benötigen Sie die MSGHOOK.VBX, die Sie in Ihr Windows/System Verzeichnis kopieren.

Tipp-Download

Quelle : J.Wood & K.Peterson

Zurück zur Übersichtsseite