Menubar
-
Also ich habe ein Problem.
Ich habe folgenden Code
AppendMenu(Setting, MF_POPUP, (UINT_PTR)Settingstring, "File"); AppendMenu(Settingstring, MF_STRING, NULL, "Design"); SetMenu(hwnd, Setting);
Tja wie bekomme ich es hin das da auch was passiert wenn ich auf
AppendMenu(Settingstring, MF_STRING, NULL, "Design");
klicke
-
Du musst auf WM_COMMAND Nachrichten reagieren.
-
Ja das habe ich probiert
Aber was ist die Id.case WM_COMMAND: { switch(LOWORD(wParam)) { case Settingstring: { Messagebox(...); } }break; } //...
funktioniert nicht.
-
Aaron3219 schrieb:
Aber was ist die Id.
Das, was du als dritten Parameter bei AppendMenu angegeben hast.
-
Aber warum funktioniert dann
case Settingstring: {};
nicht
-
Aaron3219 schrieb:
Aber warum funktioniert dann
case Settingstring: {};
nicht
Weil Settingstring ein Menü-Handle für ein Untermenü ist, keine Menübefehl-ID.
Der entscheidende AppendMenu-Aufruf ist der mit MF_STRING. Und da hast du NULL angegeben.
-
Mmmh erlich gesagt habe ich das nicht wirklich verstanden.
Könntest du vllt. ein Beispiel machen? Vllt. versteh ich es dann
-
haha ne habs schon kapiert.
Hätte ich auch schneller drauf kommen könnencase WM_CREATE: { static HMENU Setting = CreateMenu(); static HMENU Settingstring = CreateMenu(); AppendMenu(Setting, MF_POPUP, (UINT_PTR)Settingstring, "File"); AppendMenu(Settingstring, MF_STRING|MF_UNCHECKED, ID_SETTINGSTRING1, "Design"); SetMenu(hwnd, Setting); }break; case WM_COMMAND: { switch (LOWORD(wParam)) { case ID_SETTINGSTRING1: { //........ }break; } }break;