TripleD Geschrieben 28. Juli 2005 Geschrieben 28. Juli 2005 Guten Morgen zusammen, wie kann ich Abfragen, welcher Button (Schaltfläche) gedrückt wurde. Hab bis jetzt leider noch keine Lösung gefunden. Hoffe mir kann hier jemand helfen. Benutze Windows XP mit VC++ 6 / MFC Gruß TripleD Zitieren
Bubble Geschrieben 28. Juli 2005 Geschrieben 28. Juli 2005 wie kann ich Abfragen, welcher Button (Schaltfläche) gedrückt wurde. Hab bis jetzt leider noch keine Lösung gefunden. Hoffe mir kann hier jemand helfen. Die Frage ist etwas unpräzise, denn es kommt darauf an, was Du meinst. Bei Dialogen (Ja, Nein, ...) musst Du den Rückgabewert auswerten, bei Steuerelementen in eigenen Dialogboxen oder Fenstern auf das Event reagieren, indem Du die entspechenden Nachrichten in der Nachrichtenschleife auswertest. Wenn Du MFC verwendest, dann lass Dir doch einfach von VC++ einen entsprechenden Handler automatisch erzeugen. Zitieren
TripleD Geschrieben 28. Juli 2005 Autor Geschrieben 28. Juli 2005 Hi, danke für deine schnelle Antwort. Ich hab eine Dialoganwendung, in der ich selber Button erstellt habe. Jetzt möchte ich gern abfragen, welcher Button gedrückt wurde. Die Standardbutton wären kein Problem, es geht nur um die selbst erstellten. Wie funktioniert das mit dem Nachrichten Auswerten? Gruß Zitieren
Klotzkopp Geschrieben 28. Juli 2005 Geschrieben 28. Juli 2005 Du kannst mit dem Klassenassistenten für jeden Button eine Nachrichtenbehandlungsfunktion erstellen lassen, die aufgerufen wird, wenn der Button angeklickt wird. Ein Doppelklick auf den Button im Ressourceneditor tut's auch. Zitieren
Bubble Geschrieben 28. Juli 2005 Geschrieben 28. Juli 2005 Ok. Handelt es sich um eine MFC-Anwendung, oder um eine normale Windows-Anwendung? Jedes Steuerelement, also auch jeder Button, hat eine numerische ID. Da das oft schlecht zu merken ist, werden von den IDEs meist Konstanten vergeben, also nicht wundern, wenn bei Dir Namen vorkommen. Letztlich musst Du, nachdem dem Steuerelement eine eindeutige ID zugewiesen wurde, nur in der nachrichtenverarbeitenden Funktion (der DialogProc) auf eine WM_COMMAND Nachricht warten und diese auswerten. Die Nachricht übermittelt die ID des Steuerelkements und das Ereignis, in Deinem Fall BN_CLICKED. Was Du damit tust, bleibt Dir überlassen. Wenn Du die MFC verwendest: Hier wird die Nachrichtenverarbeitung zu weiten Teilen vor Dir verborgen. Du registrierst mit Makros eine Funktion, die bei dem Ereignis aufgerufen wird. Diesen Code kann Dir aber auch die IDE einbauen - Du musst im Visual C++ Dialog-Editor nur einen Doppelklick auf den entsprechenden Button machen und es wird der Code automatisch eingefügt. (Ich hoffe, dass ich mich richtig erinnere, VC++ 6 benutze ich schon lange nicht mehr.) Zitieren
TripleD Geschrieben 28. Juli 2005 Autor Geschrieben 28. Juli 2005 Danke für eure Hilfe. Das Problem hat sich erledigt. Hab einfach eine Member-Variable erstellt, weise dieser Werte zu und lese diese dann wieder aus. Gruß 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.