Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

  • Autor

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 :(

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?

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

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

Upsala,

hast du mich erwischt...

hab nicht so richtig nachgedacht, naja is halt so

ciao

Diablo999

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.