Veröffentlicht 8. Juli 200322 j Hi, versuch grad ein Menü hinzubekommen. *verzweifel* Entweder ich bin zu müde, oder ich bin blind, auf jedenfall krieg ichs nicht hin.. ich bräuchte ein menüItem dass man an und auskreuzen kann..... Hätte für das Item eine Command-Funktion angelegt.... und wollte es so machen... if (kein hacken im menüItem??) menu.CheckMenuItem(ID_HACKEN, MF_CHECKED); else menu.CheckMenuItem(ID_HACKEN, MF_UNCHECKED); Ich kann den Hacken schon setzen, und wieder enfernen... aber wie kann ich rausfinden ob der hacken momentan da ist oder nciht?!? Hab gehört es soll mit GetMenuState gehn, habs aber irgendwie nicht hingebracht! Könnt ihr mir helfen???? Danke SwordMaster
8. Juli 200322 j Autor Hab doch schon geschrieben dass ichs mit GetMenuState nicht hinbringe :°( Hab folgendes probiert if (menu.GetMenuState(ID_ITEM, MF_BYPOSITION)==MF_UNCHECKED) menu.CheckMenuItem(ID_ITEM, MF_CHECKED); else menu.CheckMenuItem(ID_ITEM, MF_UNCHECKED); habs auch mit menu.GetMenuState(ID_ITEM, MF_BYCOMMAND)==MF_UNCHECKED probiert.... hab in der MSDN nach beispielen gesucht ... da sind komische beispiele mit dem binären & Operator gestanden... hab ich alles nicht zum laufen gebracht!! Kannst mir sagen was ich falsch mache?!
8. Juli 200322 j Probier mal ob GetMenuState() 0xFFFFFFFF zurück gibt, dann kennt er das Menüitem nämlich nicht. Achso, der Haken schreibt sich ohne c;)
8. Juli 200322 j GetMenuState liefert nicht nur die Information, ob der Menüeintrag "gecheckt" ist oder nicht, sondern eine Vielzahl von Daten. Du musst die für dich relevanten Information erst herausfiltern, bevor du auf Gleichheit prüfst: if( ( menu.GetMenuState( ID_ITEM, MF_BYPOSITION ) & ( MF_CHECKED | MF_UNCHECKED ) ) == MF_UNCHECKED ) Das & bedeutet, dass du aus dem Rückgabewert von GetMenuState alles ausblendest, was nicht MF_CHECKED oder MF_UNCHECKED ist. Da MF_UNCHECKED 0 ist, geht auch folgendes: if( !( menu.GetMenuState( ID_ITEM, MF_BYPOSITION ) & MF_CHECKED ) ) Aber die erste Version ist "sauberer", zumal MS zumindest theoretisch die Werte der Konstanten ändern könnte.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.