checkbox/kontrollkästchen status abfragen?



  • ich hab im MSDN und hier im winAPI forum gesucht aber nichts gefunden! wie frage ich ab ob ein kontrollkästchen angeklickt ist?



  • IsDlgButtonChecked()

    Sowas steht (neben reichlich überflüssigem Zeug (nach Meinung einiger Leute hier im Forum)) im Petzold...



  • du meinst
    Windows-Programmierung | ISBN: 3860634879
    ?
    naja 60 euro ...vielleicht koof ich mir das irgendwann mal

    edit btw, habs dann irgendwann doch im msdn gefunden, aber anders gelößt:
    SendMessage(checkbox,BM_GETCHECK,0,0)==BST_CHECKED



  • if (SendMessage(hKontrollkaestchen,BM_GETCHECK, NULL, NULL))
        MessageBox(NULL, "Kaestchen aktiv", "test", NULL, NULL);
    if (!(SendMessage(hKontrollkaestchen,BM_GETCHECK, NULL, NULL)))
        MessageBox(NULL, "Kaestchen NICHT aktiv", "test", NULL, NULL);
    

    Mfg, Tolga



  • Tolga schrieb:

    if (SendMessage(hKontrollkaestchen,BM_GETCHECK, NULL, NULL))
        MessageBox(NULL, "Kaestchen aktiv", "test", NULL, NULL);
    if (!(SendMessage(hKontrollkaestchen,BM_GETCHECK, NULL, NULL)))
        MessageBox(NULL, "Kaestchen NICHT aktiv", "test", NULL, NULL);
    

    Mfg, Tolga

    ...und was machst Du bei 3-State-Checkboxen? Was, wenn die Checkbox den Status BST_INDETERMINATE hat?

    außerdem brauchst nicht immer wieder SendMessage aufrufen, ein simples else reicht auch:

    // Nur für "einfache" Kontrollkästchen, die nur
    // 2 Schaltzustände kennen...
    if (IsDlgButtonChecked(hDlg, IDC_CHECK1)==BST_CHECKED)
        MessageBox(NULL, "Kaestchen aktiv", "test", NULL, NULL);
    else
        MessageBox(NULL, "Kaestchen NICHT aktiv", "test", NULL, NULL);
    

Anmelden zum Antworten