Radio Button Control



  • Hallo

    Um zuerst die Situation zu erläutern: Ich habe 2 RadioButtons in einer Gruppe und einen Button. Ich würde gerne wenn der Button geklickt wird abfragen, welcher von den beiden RadioButtons aktiviert ist. Sollte kein Problem sein aber im Klassenassistent unter "Member Variables" sind die IDs die ich den RadioButtons gegeben habe gar nicht vorhanden. Also dachte ich mir ich machs manuell.

    DDX_Radio(pDX, IDC_RADIO_COPYING, m_radioCopying);
    DDX_Radio(pDX, IDC_RADIO_REPLACING, m_radioReplacing);
    

    Das in den DoDataExchange

    CButton		m_radioCopying;
    CButton		m_radioReplacing;
    

    Das in der Hauptklasse

    Dummerweise habe ich wies aussieht einen Fehler gemacht, er sagt "error C2664: 'DDX_Radio' : cannot convert parameter 3 from 'class CButton' to 'int &'".

    Auch folgendes habe ich versucht:

    if(IDC_RADIO_COPYING.getChecked == TRUE)
    	AfxMessageBox("Test");
    

    Es kommt "error C2228: left of '.getChecked' must have class/struct/union type"

    Wie handelt man mit RadioButtons? Muss man vorher eine Membervariable definieren oder nicht? Danke im Voraus



  • mit den radiobuttons via klassenassistent:

    das laeuft so, dass eine gruppe eine mebervariable hat.
    diese variable ist ein int und wird automatisch mit -1 initialisiert (nichts 'angecheckt' ;))
    diese variable nimmt dann praktisch die werte 1, 2, 3, 4, je nach dem was gedrueckt und wie viele radios des ding hat, an.

    Esco



  • Danke für deine Antwort. Für die dies interessiert und welche vielleicht auch das selbe Problem haben:

    int radioCheck;
    radioCheck = GetCheckedRadioButton(IDC_RADIO_COPYING, IDC_RADIO_REPLACING); //Da einfach die gewünschen RadioButtons in der Gruppe angeben, bei mir warens zwei
    
    if(radioCheck == IDC_RADIO_COPYING)
    {
        AfxMessageBox("RadioButton Copying ist aktiviert");
        //Weitere Befehle
    }
    else
    {
        AfxMessageBox("RadioButton Replacing ist aktiviert");
        //Weitere Befehle
    }
    


  • Ach und wie kann ich beim Start des Programms einen bestimmten RadioButton schon aktivieren? Bei CheckBoxes ging das ganz einfach mit "m_bCheck1 = FALSE;"



  • BAR schrieb:

    Ach und wie kann ich beim Start des Programms einen bestimmten RadioButton schon aktivieren? Bei CheckBoxes ging das ganz einfach mit "m_bCheck1 = FALSE;"

    lol, wie oben beschrieben:

    m_oRadio = 3;
    UpdateData(false);
    

    Esco


Anmelden zum Antworten