Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hi versuch mich gerade wieder ein einem Menü ;)

mit

menu.CheckMenuRadioItem(ID_PUNKT_TEST1,ID_PUNKT_TEST2,ID_PUNKT_TEST1, MF_BYCOMMAND) kann ich RadioButtons im Menü setzen

Aber die Funktion die bei ID_PUNKT_TEST1 ausgeführt wird, soll nicht zwei mal hintereinander ausgeführt werden, d.h. ich müßte prüfen ob der radioButton bei ID_PUNKT_TEST1 schon gesetzt ist oder nicht....

aber genau das herauszufinden schaffe ich leider nicht...

Ich habs mit dem Rückgabewert von CheckMenuRadioItem probiert, aber der sagt dass es immer "erfolgreich" ist....

und mit GetItemState bin ich leider auch nicht weitergekommen.

Hab mal Häckchen im Menü gesetzt da hab ich mit

if (menu.GetMenuState(ID_KONTEXTMEN_TEST, MF_BYCOMMAND)==MF_UNCHECKED)

prüfen können aber ich finde keinen passenden rückgabewert der für Radiobuttons steht!!

Kann mir jemand helfen?!?!

Geschrieben

Den Thread den du mir verlinkt hast, hab ich selbst eröffnet ;))

Damals hab ich versucht so einen Hacken zu setzen und herauszufindne ob der hacken schon da ist oder nicht....

aber jetzt versuch ich wie gesagt die radiobuttons

aber diesmal komm ich mit getMenuState nicht weiter!

Da ich keinen Passenden Rückgabewert von getmenustate finde der auf Radiobuttons zutrifft

MF_CHECKED bzw. MF_UNCHECKED trifft nur auf die hacken zu

und mit den anderen rückgabewerten hatte ich auch keinen erfolg :(

Geschrieben
Original geschrieben von SwordMaster

MF_CHECKED bzw. MF_UNCHECKED trifft nur auf die hacken zu

Eigentlich sollten Radiobuttons die gleichen State-Werte benutzen. Hast du versucht, die relevanten Daten aus dem Rückgabewert rauszufiltern, anstatt einfach zu vergleichen?
Geschrieben

Vergleichen alleine reicht vermutlich nicht.

Markieren heißt das stichwort:


if (GetMenuState(ID_x, MF_BYCOMMAND) && MF_UNCHECKED == MF_UNCHECKED)

{

  // bla

}

oder

if (GetMenuState(ID_x, MF_BYCOMMAND) || MF_UNCHECKED)

{

  // bla

}

Laut MSDN müssten die gleichen Stats für Radiomenus verwendet werden weil

des Windows nur des Radionsymbol dahin malt wo der Haken normalerweise ist.

Aber versuch doch das ganze mal mit einer nicht-obsolate-funktion wie GetMenuItemInfo.

Hoffe das hilft dir vielleicht

Diablo999

Geschrieben
Original geschrieben von Diablo999

if (GetMenuState(ID_x, MF_BYCOMMAND) && MF_UNCHECKED == MF_UNCHECKED)

== bindet stärker als &&, also wird MF_UNCHECKED == MF_UNCHECKED ausgewertet. Außerdem macht der logische und-Operator keinen Sinn, der bitweise Operator wäre der richtige. Drittens ist MF_UNCHECKED gleich Null, d.h. auch mit Klammern und & statt && ist dieser Ausdruck immer wahr.

if (GetMenuState(ID_x, MF_BYCOMMAND) || MF_UNCHECKED)

Das logische oder macht gar keinen Sinn. Dieser Ausdruck ist wahr, wenn GetMenuState einen von Null verschiedenen Wert zurückgibt.

Aber im Thread, auf den Guybrush Threepwood verlinkt hat, habe ich das alles eigentlich schonmal erklärt. :D

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...