Habn Problem mit Menüs



  • [cpp]
    case WM_MENUCOMMAND: 
    { 
      MENUITEMINFO mii; 
      char szText[MAX_PATH]; 
      ZeroMemory(&mii, sizeof(MENUITEMINFO)); 
      mii.cbSize = sizeof(MENUITEMINFO); 
      HMENU hMenu = GetSubMenu((HMENU)lParam, 0); 
      mii.fMask      = MIIM_STRING | MIIM_TYPE; 
      mii.fType      = MFT_STRING; 
      mii.cch        = MAX_PATH; 
      mii.dwTypeData = szText; 
      GetMenuItemInfo(hMenu, (UINT)wParam, true, &mii); 
      MessageBox(0, szText, 0, 0); 
      break; 
    }
    [/cpp]
    

    So ungefähr nur gibt er den text net aus 😕



  • Ich hätte so geraten:

    case WM_MENUCOMMAND:
    {
      char szText[MAX_PATH];
      GetMenuString((HMENU)lParam,(UINT)wParam,szText,MAX_PATH,MF_BYPOSITION);
      MessageBox(0,szText,"blupp",MB_OK);
      break;
    }
    


  • Hab auch schon versucht wie mein oberes bsp. nur kommt kein text in der MSG Box 😕



  • Kann keiner mehr helfen Funktioniert immer noch net 😕 wäre für eure hilfe echt dankbar



  • Hmm, warum hast du da eigentlich GetSubMenu() drin?

    case WM_MENUCOMMAND:
    {
      MENUITEMINFO mii;
      char szText[MAX_PATH];
      ZeroMemory(&mii, sizeof(MENUITEMINFO));
      mii.cbSize = sizeof(MENUITEMINFO);
      mii.fMask      = MIIM_STRING | MIIM_TYPE;
      mii.fType      = MFT_STRING;
      mii.cch        = MAX_PATH;
      mii.dwTypeData = szText;
      GetMenuItemInfo((HMENU)lParam, (UINT)wParam, true, &mii);
      MessageBox(0, szText, 0, 0);
      break;
    }
    

    Passen denn die Rückgabewerte von GetMenuItemInfo()?



  • @geeky danke das du mir hilfst
    Weis net so recht mit GetLastError bekomme ich fehler 87 beim debuggen bringt er kar keine meldung läuft sauber durch weis nemmer weiter vieleicht liegts ja auch darin wie ich mein menü erstelle

    hier mal der code

    [code]
    //Menü Aufruf Für Datenbank eintrag
    while (!m_recordset->ADOEOF) 
    {
      char szText01[255];
      my_String = _strdup((char*) ((_bstr_t)(m_recordset->GetFields()->GetItem(field)->GetValue())) );
      sprintf(szText01,"%s",my_String);
    
      //Menü Eintrag anlegen
      // Im Programm aufgerufen mit
      // g_AccessDatabase.PrintFieldMenu(strTable, "Link", hMenu);
    
      AppendMenu(hWin,MF_STRING,NULL,szText01);
    
      m_recordset->MoveNext();
    }
    [/code]
    

    Tray Menü Code im Programm

    [code]
    case (WM_USER + 1): 
    { 
       switch(lParam) 
       { 
       case WM_LBUTTONUP: 
       { 
        hMenu	 = CreatePopupMenu();
    
        // Mein Datenbank Aufruf		     
        g_AccessDatabase.Connect("Data/Database.mdb");
        string strTable = "Linkpager";
        // Meine Funktion zum einfügen der Links in das Menü
        g_AccessDatabase.PrintFieldMenu(strTable, "Link", hMenu);
    
        // Haupt menü zum steuern des Programms
        AppendMenu(hMenu,MF_SEPARATOR,NULL,NULL);
        AppendMenu(hMenu,MFT_STRING,IDOK,TEXT("Wiederherstellen")); 
        AppendMenu(hMenu,MFT_STRING,IDCANCEL,TEXT("Beenden"));
    
        SetForegroundWindow(hWnd); 
        GetCursorPos(&pt); 
    
        TrackPopupMenu(hMenu, TPM_LEFTALIGN|TPM_TOPALIGN, pt.x, pt.y, 0, hWnd, NULL); 
        PostMessage(hWnd, WM_NULL, 0, 0); 
    
        } 
    
        case WM_MENUCOMMAND: 
        { 
    	MENUITEMINFO mii; 
    	char szText[MAX_PATH];
    	ZeroMemory(&mii, sizeof(MENUITEMINFO)); 
    	mii.cbSize = sizeof(MENUITEMINFO); 
    	mii.fMask      = MIIM_STRING | MIIM_TYPE; 
    	mii.fType      = MFT_STRING; 
    	mii.cch        = MAX_PATH; 
    	mii.dwTypeData = szText; 
    	GetMenuItemInfo((HMENU)lParam, (UINT)wParam, true, &mii); 
    	MessageBox(0, szText, 0, 0); 
    	break; 
        }
      } 
      return 0; 
    }
    [/code]
    

    hier die ausgabe der MessageBox Hier Fehler
    hier das tray Menü ausgabe Hier Tray


  • Mod

    Was sagt der Returnwert von GetMenuItemInfo?
    Schon mal daran gedacht das, diese Funktion einen Fehler meldet?



  • wie bekom ich den return wert 😕 sorry für die blöde frage


  • Mod

    GetMenuItemInfo gibt doch einen Wert zurück! Welchen Wert?



  • er liefert einen int Wert zurück, mit dem Wert 1243088

    sry 😃 für die späte Antwort hab spätschicht und komm immer erst um die zeit nach haus zumindest diese woche


Anmelden zum Antworten