Wie kann ich eine allgemeine Funktion für Buttons deklarieren



  • Hallo,
    ich habe einen Dialog mit 225 Button, die alle auf ein Klicken gleich reagieren sollen. Ich habe aber keine Lust 225 mal eine Funktion zuzuweisen. Wie kann ich eine allgemeine deklarieren die für alle Buttons gilt ? 😕
    Und wie kann ich dann feststellen welcher Button gedrückt wurde ? kann ich den Button irgendwie übergeben ?
    Danke im Vorraus !
    Turbobrain



  • Hallo,

    Die BN_CLICKED Nachricht geht durch die OnCommand(..) des Dialogs. Also OnCommand überschreiben und dort mit

    WORD buttonID = LOWORD(wParam);
    

    die ID des Buttons/Controls holen.

    Gruss mathi



  • mit ON_COMMAND_RANGE kannst du einen gemeinsammen Handler für einen Bereich von ID's festlegen.

    den ID des Buttons bekommst du als parameter

    Du kannst z.B. ein Array von CButton's nehmen, diese manuell erzeugen, und einen sequentiellen Ctrl-ID zusweisen. So kommst du dann auch wieder vom ID zurück auf das CButton-Objekt



  • ich habe einen Dialog mit 225 Button

    dann änder das mal lieber. sowas will doch niemand benutzen 😡



  • dann änder das mal lieber. sowas will doch niemand benutzen

    Leider kann ich das nicht ändern. Ich glaube außerdem zu wissen, dass nur ich und nicht der unregistrierte Schreiber dieses Zitats weiß wofür mein Programm ist. 😡 Dieser Schreiber sollte sich ein Vorbild an den exzellenten Beiträgen, die vor ihm geschrieben wurden, nehmen. Diese sind nämlich sehr informativ.
    👍 ⚠ 😃

    MFG Turbobrain



  • turbobrain schrieb:

    ich habe einen Dialog mit 225 Button

    Mich hast du damit allerdings auch etwas neugierig gemacht, is ja schon ne Menge und alle die gleiche Funktion.
    Sag mir doch bitte um was es hier geht. 😉



  • Servus,
    ich schreibe ein Programm, das mir einen Plan einlesen soll. Jeder Button stellt ein Planquadrat dar. Vielleiht habt ihr ja auch meine andere Frage hier im Forum schon zu Gesicht bekommen. Dann wisst ihr das sich jeweils das Bitmap auf dem Button ändern soll und somit ein Zustand dargestellt wird. Es wird ein Plan von einem Berg mit Diamantenvorkommen eingelesen und dann muss das Programm Stollen "graben", zu diesen Diamanten, wobei die Stollen sich nicht überschneiden dürfen. Vielleicht kennst du die Aufgabe, sie stammt aus dem Informatikwettbewerb des Bundes. Leider bin ich schon zu spät dran um teilzunehmen, will die Aufgabe aber trotzdem lösen.
    Turbobrain 😃

    P.S: Danke für das Intresse



  • Dann mach nicht eine Dialoganwendung sondern eine DOC/View und stelle die Grafiken in einem RECT dar. Alle dann in eine Liste und beim Mouseklick gehst du diese Liste durch und fragst ab ob dieser in der RECT liegt. Dann änderst du nur das Bild für dieses RECT.



  • Guten Abend,
    das ist eine interessante Idee. Schaue mal ob es klappt.
    Turbobrain


Anmelden zum Antworten