Editierbares Menü
-
Hallo,
ich hab schon ein kleines Programm geschrieben welches sich in der System-Tray
befindet und wo ich mit einem Rechtsklick ein Menü öffnen kann.
Soweit so gut.
Jetzt bräuchte ich irgend eine Idee wie ich diesem Menü dynamisch neue Menüpunkte zuweisen und diese später auch wieder löschen kann.Ziel soll sein dass der Benutzer sich dort seine Programme die er häufig benötigt selber "rein-editieren" kann.
Das Menü muss demnach wohl aus einer extrenen Datei oder der Registry kommen
da ansonsten bei einem Neustart die neuen Menüeinträge verschwunden sind.Nun meine Frage:
Wie les ich ein Menü aus einer Extrnen Datei zur Laufzeit aus ?????Danke schon mal für eure Mühe
Robby
-
Das Menü kannst Du mit CreatePopupMenu/AppendMenu/InsertMenu erstellen. Oder liegt das Problem beim Lesen der Informationen aus der Datei?
-
Original erstellt von -King-:
Das Menü kannst Du mit CreatePopupMenu/AppendMenu/InsertMenu erstellen. Oder liegt das Problem beim Lesen der Informationen aus der Datei?Ja, das Problem liegt beim lesen aus der Datei und wie ich
das gelesene in mein Menü integriere...
-
WriteFile() oder WriteFileEx()
-
Original erstellt von toom:
WriteFile() oder WriteFileEx()Ähm, wie ich Dateien ein- und auslese ist mir schon klar.
Ich hab den Menu-Namen und die dazugrhörige Aktion in
einer externen Datei.Das Problem ist:
Wie bekomm ich die ausgelesen Daten so hin
das der Name im Menü angezeigt wird und
die zugehörige Aktion ausgeführt wird
wenn dieser Menüpunkt angeklickt wird?
-
HMENU hMenu ;
POINT pt ;
TCHAR szDeinString[20] = "hallo" ;hMenu = CreatePopupMenu () ;
AppendMenu (hMenu, MF_STRING, IDM_BEENDEN, szDeinString) ;
SetForegroundWindow (hwnd) ;
GetCursorPos (&pt) ;
TrackPopupMenu (hMenu, TPM_RIGHTBUTTON, pt.x, pt.y, 0, hwnd, NULL) ;
DestroyMenu (hMenu) ;
PostMessage (hwnd, WM_NULL, 0, 0) ;// mit dem code reagierst du auf das druecken auf dein System-Tray
-
IDM_BEENDEN ist eine konstante
-
Ja, soweit so gut. Damit bekomm ich zwar den Text den der User eingibt als
neuen Menüpunkt nur dummerweise ist diese Lösung nicht dynamisch, da ich für jeden Menüpunkt eine Konstante wie bei Dir IDM_BEENDEN angeben muss.Es sollten möglichst 0-n Einträge möglich sein, die in einer Schleife (aus einer Datei gelesen) dem Menü hinzugefügt werden...
Noch eine Idee???
Robby
-
Die Konstanten sind doch auch nur Zahlen - also kannst du diese doch dynamisch machen, wo ist das Problem?
-
Original erstellt von flenders:
Die Konstanten sind doch auch nur Zahlen - also kannst du diese doch dynamisch machen, wo ist das Problem?Ja, so hab ich das jetzt auch gemacht.
Danke
Robby