listbox verlassen dann anweisung



  • hallo, ich habe einen dialog der so aufgebaut ist:

    datentyp auswählen --> lb_daten --> ceate button.

    ich habe es im moment so, dass alles auf False ist bis auf die auswahl des datentyoes. wenn ich den datentyp ausgewählt habe kann ich auf das listenfeld ln_daten zugreifen, dann wird der create button enabled und man kann das file createn. so mein problem ist jetzt :

    ein ungescheiter user schaltet somit alles frei. kann dann aber immer noch nachdem er eine auswahl im listenfeld vorgenommen hat, diese wieder rausnehmen, also das nichts im listenfeld angeklickt ist. dann kann er aber trotzdem noch den createbutton betätigen. habe es schon mit killfocus etc probiert. hat aber alles nicht so richtig geklappt. hat von euch noch jemand nen tipp ??

    danke



  • kann man nicht irgendiwie sowas sagen wie.

    if(lb_daten == empty)
    {
    enable-button(FALSE)
    }

    sowas in der art bräuchte ich. also wenn in dem lb feld nicht angeklickt ist.

    mit kill focus oder den gegebenen funktionen geht das nicht so richtig.

    danke euch



  • habe es so probiert. über gettext auch schon. wieso geht das nicht ?

    void CDds_centerDlg::OnSelchangelbres() 
    {
        UpdateData(TRUE);
    
        if(m_lb_speed.GetSelCount == 0)
        {
          GetDlgItem(IDOK)->EnableWindow(FALSE);	
        }
        else
        {
          GetDlgItem(IDOK)->EnableWindow(TRUE);	
        }
    
        UpdateData(FALSE);
    }
    


  • GetSelCount ist eine Funktion. Funktionsaufrufe erkennt man an den runden Klammern.



  • hmm... ok.

    aber hast du nen tipp wie ich es richtig machen kann ?
    danke



  • k habs rausgefunden...

    int bla = m_lb_res.GetSelCount();
    
       if(bla == FALSE)
        {
        GetDlgItem(IDOK)->EnableWindow(FALSE);	
        }
        else
       {........
    


  • man man man... das geht aber auch nur weil FALSE als 0 definiert ist -.-

    void CDds_centerDlg::OnSelchangelbres() 
    {
        UpdateData(TRUE);
    
        if(m_lb_speed.GetSelCount() == 0)
        {
            GetDlgItem(IDOK)->EnableWindow(FALSE);    
        }
        else
        {
            GetDlgItem(IDOK)->EnableWindow(TRUE);    
        }
    
        UpdateData(FALSE);
    }
    

    Wäre richtig gewesen.. an deinem verhalten entnimmt man aber das du nochmal gucken solltest, wie man in C++ Programmiert 🙂


Anmelden zum Antworten