Zum Inhalt springen

CMenu + Haken


Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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?!

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...