Menüeintrag umbennen



  • Hi Community,

    habe ein kleines Problem mit Menüs, dass mich ziemlich nervt. Hoffe, ihr könnt weiterhelfen. Ich will einen Menüeintrag umbenennen. Ich versuche das mit

    ModifyMenu( hMenu, 1, MF_BYPOSITION | MF_STRING, NULL, TEXT("Stop") );
    

    Hier sollte theoretisch das 1. Element umbenannt werden in "Stop". Allerdings komme ich mit den Parametern nicht so klar. Dank im Voraus, Gruß, '][' !



  • änder mal deinen ersten Parameter in eine 0 - dann müsste es gehen 😉
    Die werden nämlich nach dem "zero-based index" gezählt (siehe MSDN)



  • Hi,

    ich ging auch davon aus, dass das 0. Element das erste der Rangordnung ist. Daran liegt es also nicht. Vielleicht liegt es daran, dass ich ein Pop-Up-Menü verwende?! Viele Grüße, '][' !



  • Wie holst du dir denn das Menü-Handle? Das wäre noch das einzige, was mir dazu einfällt, was falsch sen könnte.
    Und was sagt GetLastError?



  • Das ist das Codestück, dass die Arbeit machen soll.

    HMENU hMenu;
    
    					hMenu = LoadMenu(g_hInstance, MAKEINTRESOURCE( MAKEWORD(IDR_MENU3, 0) ) );
    					hMenu = GetSubMenu(hMenu, 0);
    
    					timer.LaunchProgram( SendMessage(hwnd, LB_GETCURSEL, 0, 0) );						
    					ModifyMenu( hMenu, 0, MF_BYPOSITION | MF_STRING, (UINT_PTR) &hMenu, TEXT("Stop") );
    

    Viele Grüße, '][' !



  • HMENU hMenu;
    hMenu = LoadMenu(g_hInstance, MAKEINTRESOURCE( MAKEWORD(IDR_MENU3, 0) ) );
    hMenu = GetSubMenu(hMenu, 0);
    timer.LaunchProgram( SendMessage(hwnd, LB_GETCURSEL, 0, 0) );
    ModifyMenu( hMenu, 0, MF_BYPOSITION | MF_STRING, 0, TEXT("Stop") );
    

Anmelden zum Antworten