vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Re: Menü zur Laufzeit 
Autor: Martin01
Datum: 05.05.03 23:45

VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "MenuBarC"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True

Option Explicit

'Name MenuBarC
'Datei MenuBarC.cls
'in MenuP.vbp = ActiveX-Dll

Private MenuInfo() As MenuC ' clsMenu
Private MenuPropID As Long

Public Event Clicked(ByVal MenuId As Long, ByVal Caption As String)

Private Sub Class_Initialize()
Set MenuEvent = Me
End Sub

Private Sub Hook(ByVal FormHwnd As Long)
gOldProc& = GetWindowLong(FormHwnd, GWL_WNDPROC)
Call SetWindowLong(FormHwnd, GWL_WNDPROC, AddressOf MenuProc)
End Sub

Public Sub Create(ByVal hWnd As Long)
Dim MenuHwnd As Long, SubMenuHwnd As Long

FormHwnd = hWnd
DestroyMenu GetMenu(FormHwnd)
MenuHwnd = CreateMenu
SetMenu FormHwnd, MenuHwnd
DrawMenuBar FormHwnd

ReDim Preserve MenuInfo(0)
ReDim Preserve MenuId(69)

Hook FormHwnd
End Sub

Public Sub AddMenu(ByVal Caption As String)
Dim MenuHwnd As Long, NewMenuId As Long

MenuHwnd = GetMenu(FormHwnd)

NewMenuId = UBound(MenuId) + 1
ReDim Preserve MenuId(NewMenuId)

MenuId(NewMenuId) = Caption
AppendMenu MenuHwnd, MF_POPUP Or MF_STRING Or MF_OWNERDRAW, NewMenuId, Caption

SetMenu FormHwnd, MenuHwnd
DrawMenuBar FormHwnd

ReDim Preserve MenuInfo(MenuPropID)

Set MenuInfo(MenuPropID) = New MenuC
With MenuInfo(MenuPropID)
.Caption = Caption
.Id = NewMenuId
.Pos = MenuPropID
.hWnd = MenuHwnd
End With
MenuPropID = UBound(MenuInfo) + 1
End Sub

Public Property Get SubMenu(ByVal Index As Long) As MenuC
Set SubMenu = MenuInfo(Index)
End Property

Public Sub ClickMenu(ByVal ClickedMenuId As Long)
RaiseEvent Clicked(ClickedMenuId, MenuId(ClickedMenuId))
End Sub
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Menü zur Laufzeit89Bob Rooney05.05.03 16:42
Re: Menü zur Laufzeit482Backslash05.05.03 18:18
Re: Menü zur Laufzeit50Martin0105.05.03 23:42
Re: Menü zur Laufzeit46Martin0105.05.03 23:44
Re: Menü zur Laufzeit42Martin0105.05.03 23:45
Re: Menü zur Laufzeit33Martin0105.05.03 23:45
Re: Menü zur Laufzeit32Martin0105.05.03 23:46
Re: Menü zur Laufzeit42Martin0105.05.03 23:47
Re: Menü zur Laufzeit479Backslash06.05.03 00:07
Re: Menü zur Laufzeit35Martin0106.05.03 01:54

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel