vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 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

Fortgeschrittene Programmierung
Re: System-Menü eines Forms erweitern II 
Autor: Hawker
Datum: 08.03.08 15:34

Hab da mal was gecoded. Die Prozedur fügt einen Trennstrich und einen neuen Eintrag
hinzu.

Private Sub InsertItem()
    Dim hSysMenu As Long 
    Dim count As Long   
    Dim MenuItem As MENUITEMINFO
    Dim retval As Long  
    Dim menu As Long
 
    menu = GetMenu(Form1.hwnd)
    hSysMenu = GetSubMenu(menu, 1)
   'Anzahl der Elemente:
    count = GetMenuItemCount(hSysMenu)
 
    'Zuerst noch einen Trennstrich einfügen:
    With MenuItem
        .cbSize = Len(MenuItem)
        .fMask = MenuItemM_ID Or MenuItemM_TYPE
        .fType = MFT_SEPARATOR
        .wID = 0 'Die ID des Eintrags
    End With
    retval = InsertMenuItem(hSysMenu, count, 1, MenuItem)
 
    With MenuItem
        .fMask = MenuItemM_STATE Or MenuItemM_ID Or MenuItemM_TYPE Or _
          MenuItemM_SUBMENU
        .fType = MFT_STRING ' Der Eintag ist vom Typ String
        .fState = MFS_ENABLED 'DerEintrag soll enabled sein
        .wID = 1 'ID
        .dwTypeData = "Neuer Eintrag"
        .cch = Len(.dwTypeData)
    End With
    retval = InsertMenuItem(hSysMenu, count + 1, 1, MenuItem)
 
End Sub
Fehlen nur noch die APIs und die MENUITEMINFO-Struktur:

Public Declare Function GetMenuItemCount Lib "user32.dll" (ByVal hMenu As Long) _
  As Long
Public Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal _
  nPos As Long) As Long
Public Declare Function InsertMenuItem Lib "user32.dll" Alias "InsertMenuItemA" _
(ByVal hMenu As Long, ByVal uItem As Long, ByVal fByPosition As Long, lpmii As _
MENUITEMINFO) As Long
 
Public Type MENUITEMINFO
    cbSize As Long
    fMask As Long
    fType As Long
    fState As Long
    wID As Long
    hSubMenu As Long
    hbmpChecked As Long
    hbmpUnchecked As Long
    dwItemData As Long
    dwTypeData As String
    cch As Long
End Type
Public Const MIIM_STATE = &H1
Public Const MIIM_ID = &H2
Public Const MIIM_SUBMENU = &H3
Public Const MIIM_TYPE = &H10
Public Const MFT_SEPARATOR = &H800
Public Const MFT_STRING = &H0
Public Const MFS_ENABLED = &H0
Public Const MFS_CHECKED = &H8
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
System-Menü eines Forms erweitern II1.217dj.tommy07.03.08 20:27
Re: System-Menü eines Forms erweitern II856Hawker08.03.08 15:34
Re: System-Menü eines Forms erweitern II805Hawker08.03.08 15:38
Re: System-Menü eines Forms erweitern II789dj.tommy08.03.08 16:35
Re: System-Menü eines Forms erweitern II773Hawker08.03.08 18:11
Re: System-Menü eines Forms erweitern II746dj.tommy08.03.08 18:34
Re: System-Menü eines Forms erweitern II772Hawker08.03.08 19:11
Re: System-Menü eines Forms erweitern II732dj.tommy08.03.08 19:20
Re: System-Menü eines Forms erweitern II779dj.tommy09.03.08 10:32
Re: System-Menü eines Forms erweitern II765Hawker10.03.08 20:55
Re: System-Menü eines Forms erweitern II755dj.tommy11.03.08 15:33
Re: System-Menü eines Forms erweitern II866Hawker11.03.08 17:30
Re: System-Menü eines Forms erweitern II855Hawker11.03.08 17:32
Re: System-Menü eines Forms erweitern II817dj.tommy11.03.08 20:21
Re: System-Menü eines Forms erweitern II774Hawker11.03.08 21:02
Re: System-Menü eines Forms erweitern II803dj.tommy11.03.08 21:14

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