Haeckchen in Menu einfuegen



  • hallo,
    wie kann ich vor einen menupunkt ein haeckchen hinzufuegen?
    danke
    gruesse



  • CheckMenuItem ...wenne das meinst 😉

    MfG CodeFinder



  • das geht bei mir irgendwie ned... also das menu habe ich in rsrc.rc definiert, und zwar so:

    MYMENU MENU
    BEGIN
         POPUP "File"
         BEGIN
              MENUITEM "New",        IDM_NEW
              MENUITEM "Open",       IDM_OPEN
              MENUITEM "Save",       IDM_SAVE
              MENUITEM "Save as...", IDM_SAVEAS
              MENUITEM "Close File", IDM_CLOSEFILE
              MENUITEM SEPARATOR
              MENUITEM "Exit",       IDM_EXIT
         END
    
         POPUP "Format"
         BEGIN
              MENUITEM "Font",       IDM_FONT
              [b]MENUITEM "Margin",     IDM_MARGIN[/b]
         END
    
         POPUP "Help"
         BEGIN
              MENUITEM "About",      IDM_ABOUT
         END
    END
    

    so, dann in der WndProc funktion bei WM_CREATE:

    HMENU hMenu = LoadMenu( g_hInst, "MYMENU" );
    

    und schliesslich bei WM_COMMAND:

    switch( LOWORD(wParam) )
    {
            case IDM_MARGIN:
            CheckMenuItem( hMenu, 7, MF_BYPOSITION | MF_CHECKED );
            return 0;
    }
    

    aber das haeckchen geht einfach ned her... ist der code falsch?
    danke



  • CheckMenuItem(GetMenu(hwnd),IDM_MARGIN,MF_CHECKED);



  • Hi,

    DZ schrieb:

    HMENU hMenu = LoadMenu( g_hInst, "MYMENU" );
    

    LOL, du musst hMenu als static deklarieren...sonst ist der bei WM_COMMAND ungültig... 😃

    Hmm also wenn das n SystemMenü ist solltest du lieber GetMenu() verwenden...
    und falls es immer noch nicht funzt: Hast du mal hMenu überpüft (zur Not auch mit GetLastError())?



  • pla schrieb:

    CheckMenuItem(GetMenu(hwnd),IDM_MARGIN,MF_CHECKED);

    Nope, wenn dann so:

    CheckMenuItem(GetMenu(hwnd), IDM_MARGIN, MF_BYCOMMAND | MF_CHECKED);
    

Anmelden zum Antworten