Checkbox beim Start des Programms aktivieren



  • Hallo Leute,

    Um mich kurz zu fassen: Wie kann ich eine Checkbox sofort beim Start des Programms aktivieren lassen bzw. "ein Häkchen reinmachen"?

    Ich habe schon relativ lange nach konkreten Beispielen gesucht (MSDN und Google) und auch die Forumsuche benutzt. Ebenfalls weiss ich, dass es mit setCheck(TRUE) oder setChecked gehen sollte aber irgendwie krieg ichs trotzdem nicht gebacken weil er mir jedes mal beim kompilieren folgenden Error ausgibt:

    '.setCheck' must have class/struct/union type

    Kann mir einer weiterhelfen? Wäre sehr dankbar.

    Herzliche Grüsse



  • mE musst du der checkbox eine membervariable zuweissen und diese dann auf true/false setzen, gefolgt von einem

    UpdateData(true);
    

    Esco



  • Ich hatte schon von Anfang an eine MemberVariable m_bCheck1 zugewiesen. Auch weiss ich das mit dem UpdateData (ausserdem isses FALSE und nicht TRUE weil ich ja aus den Variablen in die Steuerelemente schreiben möchte und nicht umgekehrt 😉 ).

    m_bCheck1.SetCheck(TRUE);
    


  • Schreib es einfach so:

    m_bCheck1 = TRUE;
    

    Gruß
    :: NoName ::



  • Ok super danke!



  • :: NoName :: schrieb:

    Schreib es einfach so:

    m_bCheck1 = TRUE;
    

    Gruß
    :: NoName ::

    genau das hab ich oben geschrieben BAR, und das sieht man auch wenn man via klassenassistent der box die variable zuweisst, dann wird nämlich in der initinstance m_Check auf false gesetzt.

    sorry dass ich das mit true/false verwechselt habe...

    Esco



  • Ach so dann hab ich dich wohl missverstanden. Trotzdem danke an beide 🙂



  • Hi!

    Schau mal im Konstruktor der Dialogklasse, da müsste schon ein

    m_bCheck1 = FALSE;
    

    stehen

    Das mit dem SetCheck funktioniert schon, allerdings musst du einen Zeiger zu dem Checkbuttondialogfeld-Objekt holen (GetDlgItem(id)), in ein CButton* Zeiger verwandeln und dann müsstest du die SetCheck Methode der CButton Klasse verwenden können.
    Offiziell ist das kein CButton-Objekt, allerdings verwendet es die gleiche Windows Nachricht BM_SETCHECK.

    Alternativ kannst du auch

    GetDlgItem(id)->SendMessage(BM_SETCHECK, BST_CHECKED, 0);
    

    verwenden



  • @nollsen

    So kann man es auch machen ! 😃


Anmelden zum Antworten