vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 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: Menüleiste 
Autor: unbekannt
Datum: 16.06.03 20:05

Hi Maxe,

das ist nicht 1 WinAPI-Funktion sondern eine ganze Gruppe von Funktionen die sich um Menüs kümmern. Grob überschlagen: 25 API-Funktionen, ohne die zugehörigen Strukturen und Konstanten. Daneben musst Du noch die MDI-Form subclassen, weil Du ja an die WM_Command Message kommen musst. Nun ein Modul wird damit ziemlich voll. Der Platz für nur ein Menü reicht hier aber nicht aus, der wäre schon allein durch die Declarationen der benötigten Api und Strukturen erschöpft. Ich weiß nicht, wo man ein Beispiel für VB für selbstgezimmerte Menüs downloaden kann. Wie das in etwa grob funktioniert kann ich Dir hier anhand eines PowerBASIC - Beispiels zeigen, wobei Du jede Menu - Anweisung als API-Aufruf verstehen müsstest:

FUNCTION CreateMainMenu(BYVAL hWnd AS DWORD) AS DWORD
    LOCAL hPopUp     AS DWORD
    LOCAL hPopUpNext AS DWORD
    LOCAL hPopUpGz   AS DWORD
    LOCAL hPopupHelp AS DWORD
 
    ' Trackpopupmenü für Printmanager
    MENU NEW POPUP TO HPOPUP1
    MENU ADD STRING,Hpopup1,"Seite einrichten" & _
      "...",%IDM_Seiteeinrichten,%MF_ENABLED
    MENU ADD STRING,Hpopup1,"Drucker einrichten" & _
    "...",%IDM_Druckersetup,%MF_Enabled
    MENU ADD STRING,Hpopup1,"Drucken",%IDM_PrinterDlg,%MF_Enabled
    MENU ADD STRING,Hpopup1,"-",0,%MF_Enabled
    MENU ADD STRING,Hpopup1,"DUZ-Formular" & _
      "einrichten",%IDM_POP1_DUZFormular,%MF_ENABLED
    MENU ADD STRING,Hpopup1,"DUZ-Nachweis",%IDM_POP1_DUZNACHWEIS,%MF_ENABLED
    MENU ADD STRING,Hpopup1,"Gleitzeitformular",%IDM_POP1_Gleitzeit,%MF_ENABLED
 
    ' Mainmenü
    MENU NEW BAR TO HMENU
 
    MENU NEW POPUP TO hPopup
    MENU ADD STRING, hPopup,"Neu Anmelden",%IDM_Neuanmeldung,%MF_ENABLED
    MENU ADD STRING, hPopup,"-",0,%MF_ENABLED
    MENU ADD STRING, hPopup,"Seite einrichten" & _
      "...",%IDM_Seiteeinrichten,%MF_ENABLED
    MENU ADD STRING, hPopup,"Drucker einrichten" & _
    "...",%IDM_Druckersetup,%MF_Enabled
    MENU ADD STRING, hPopup,"Drucken",%IDM_PrinterDlg,%MF_Enabled
    MENU ADD STRING, hPopup,"-",0,%MF_ENABLED
    MENU ADD STRING, hPopup,"Beenden",%IDM_Beenden,%MF_ENABLED
    MENU ADD POPUP, HMENU,"&Datei",hPopup,%MF_ENABLED
 
    MENU NEW POPUP TO hPopup
    MENU ADD STRING, hPopup,"Abfrage erstellen",%IDM_ABFRAGEN,%MF_ENABLED
    MENU ADD POPUP, HMENU,"&Bearbeiten",hPopup,%MF_ENABLED
 
    MENU NEW POPUP TO hPopupGz
    MENU ADD STRING, hPopupGZ,"Gleitzeit erfassen",%IDM_GleitzeitErf,%MF_Enabled
    MENU ADD STRING, hPopupGZ,"Gleitzeit Dialog",%IDM_Gleitzeitvoll,%MF_Enabled
    MENU ADD STRING, hPopupGZ,"Gleitzeit" & _
      "löschen",%IDM_GleitzeitLoesch,%MF_Enabled
 
    MENU NEW POPUP TO hPopup
    MENU ADD STRING, hPopup,"Neuer Benutzer" & _
      "einrichten",%IDM_Usr_Neuanmelden,%MF_ENABLED
    MENU ADD STRING, hPopup,"Passwortänderung",%IDM_Usr_PwdAendern,%MF_ENABLED
    MENU ADD STRING, hPopup,"Benutzerrechte" & _
      "ändern",%IDM_Usr_RechtAendern,%MF_ENABLED
    MENU ADD STRING, hPopup,"Benutzer löschen",%IDM_Usr_Loeschen,%MF_ENABLED
    MENU ADD STRING, hPopup,"Vergessenes Passwort" & _
      "suchen",%IDM_Passwortsuchen,%MF_ENABLED
    MENU ADD STRING, hPopup,"-",0,%MF_ENABLED
    MENU ADD STRING, hPopup,"Personendatenblatt",%IDM_PersonenDaten,%MF_ENABLED
    MENU ADD STRING, hPopup,"Freizeitantrag",%IDM_FreizeitAntrag,%MF_ENABLED
    MENU ADD STRING, hPopup,"Urlaubsantrag",%IDM_Urlaubantrag,%MF_ENABLED
    MENU ADD POPUP, hPopup,"Gleitzeit",hPopupGZ,%MF_ENABLED
    MENU ADD STRING, hPopup,"-",0,%MF_ENABLED
    MENU ADD STRING, hPopup,"Dienstvorgaben",%IDM_Dienstvorgaben,%MF_ENABLED
    MENU ADD STRING, hPopup,"TestDuz",%WM_USER + 2000,%MF_ENABLED
    MENU ADD POPUP, HMENU,"Be&nutzer",hPopup,%MF_ENABLED
 
 
    MENU ATTACH HMENU,hwnd
    FUNCTION = HMENU
END FUNCTION
Vielleicht siehst Du die Systematik und genauso (eben mit der WinAPI) müsstest Du das dynamische Menü erstellen, wobei hier natürlich die Daten aus Deiner Ini entsprechend ausgewertet werden müssen um die richtigen Einträge anzuzeigen oder nicht.
0
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Menüleiste415Maxe16.06.03 13:57
Re: Menüleiste300unbekannt16.06.03 15:38
Re: Menüleiste258Maxe16.06.03 16:44
Re: Menüleiste255Maxe16.06.03 18:38
Re: Menüleiste240unbekannt16.06.03 18:57
Re: Menüleiste250Maxe16.06.03 19:07
Re: Menüleiste292unbekannt16.06.03 20:05
Re: Menüleiste233Maxe16.06.03 21:42

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