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 |