SwordMaster Geschrieben 29. Juli 2003 Geschrieben 29. Juli 2003 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?!?! Zitieren
Guybrush Threepwood Geschrieben 30. Juli 2003 Geschrieben 30. Juli 2003 Schau mal hier, dass hilft dir bestimmt weiter. Zitieren
SwordMaster Geschrieben 30. Juli 2003 Autor Geschrieben 30. Juli 2003 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 Zitieren
Guybrush Threepwood Geschrieben 30. Juli 2003 Geschrieben 30. Juli 2003 Original geschrieben von SwordMaster Den Thread den du mir verlinkt hast, hab ich selbst eröffnet ) Upps, sorry:rolleyes: Da hab ich im Eifer des Gefechts gar nicht drauf geachtet:D Zitieren
Klotzkopp Geschrieben 30. Juli 2003 Geschrieben 30. Juli 2003 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? Zitieren
Diablo999 Geschrieben 30. Juli 2003 Geschrieben 30. Juli 2003 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 Zitieren
Klotzkopp Geschrieben 30. Juli 2003 Geschrieben 30. Juli 2003 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. Zitieren
Diablo999 Geschrieben 30. Juli 2003 Geschrieben 30. Juli 2003 Upsala, hast du mich erwischt... hab nicht so richtig nachgedacht, naja is halt so ciao Diablo999 Zitieren
Guybrush Threepwood Geschrieben 31. Juli 2003 Geschrieben 31. Juli 2003 Original geschrieben von Klotzkopp Aber im Thread, auf den Guybrush Threepwood verlinkt hat, habe ich das alles eigentlich schonmal erklärt. Sag ich doch:floet: Zitieren
Empfohlene Beiträge
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.