Problem mehrere Buttons zuverwalten mit BNCLICKED, please help!



  • hmm hat kein ne lösung fuer dieses problem???



  • Es gibt keine einfache Lösung.
    WM_COMMAND muss immer zwei Informationen auswerten um eindeutig zu bleiben.



  • ich habe nie behauptet das die lösung einfach sein muss ;).. aber es muss doch gehen oder? ich kann doch nicht jedes mal diesen codwe schreiben.... für 100fenster wird nachher ziemlich unübersichtlich.

    Gruß Tobi.



  • wie wärs mit einem array aus funktionspointern?



  • wie meinst du das?



  • grrrr... es muss doch ne möglichlkeit geben das, wenn ich nen fenster voll button habe.

    Skizze:
    x 1 2 3 4 5 6 7

    a=[][][][][][][]=
    b=[][][][][][][]=
    c=[][][][][][][]=
    d=[][][][][][][]=
    e=[][][][][][][]=
    f=[][][][][][][]=

    und ich jetzt button d3 drücke da ne x reinzusetzen.... ohne das ich fuer jeden button ne extra id brauche -.- wären immerhin 42stk.

    Gruß Tobi.



  • Also Du schilderst Dein Thema reichlich kompliziert und wirrsch, aber meinst Du sowas... . Davon ausgehend, das der 1. Button von Deinen 42 Stück die ID:

    #define BTN_FIRST_ID 1000
    

    hat, ist die letzte ID:

    #define BUTTON_COUNT 42
    #define BTN_LAST_ID (BTN_FIRST_ID + BUTTON_COUNT)
    

    Damit kannst Du dann das schreiben:

    case WM_COMMAND:
       if(LOWORD(wParam) >= BTN_FIRST_ID && LOWORD(wParam) <= BTN_LAST_ID)
          SetWindowText(reinterpret_cast<HWND>(lParam), TEXT("X"));
       // Hier ggf. weitere Control-IDs switchen...
       break;
    

    Lößt das Dein Problem 🙂 ?



  • alle klar funktioniert alles einwandfrei, danke fuer den tollen loesungs ansatz

    eine frage hab ich mal.... Worin liegt der unterschied zw. static_cast und reinterpret_cast ???

    Gruß Tobi.



  • static_cast nutzt legale Typumwandlungen, um das übergebene Objekt in den Zieltyp umzuwandeln (und wird die Zusammenarbeit verweigern, wenn es keine Typumwandlung gibt). reinterpret_cast interpretiert das Bitmuster des übergebenen Objekts so, wie es der Zieltyp erwartet.



  • Als Ergänzung zu CStoll's Post: Und man sollte einen reinterpret_cast nach Möglichkeit immer vermeiden (dadurch kann es schnell zu Fehlern kommen, wenn man ihn 'falsch' einsetzt). Hier bzw. allgemein in der WinAPI (und gerade in Kombination mit SendMessage bzw. Message-Handlern) kommt man aber um seine Benutzung selten herum.


Anmelden zum Antworten