Problem beim Deaktivieren von Edit-Feldern



  • Ich habe mehrere Elemente auf einem Formular und möchte diese deaktivieren.
    Es hat bei allen hin (Check-Box, Static, etc.)
    Nur bei Edit Feldern gibt es Probleme. Der Vorgang bleibt teilweise ohne Effekt. Woran liegt das?

    Code:

    GetDlgItem(IDC_EDIT_KUNDE)->EnableWindow(false);
    UpdateData(false);
    

    [ Dieser Beitrag wurde am 09.10.2002 um 13:50 Uhr von der_aus_muenster editiert. ]



  • Hi,

    allein mit der dieser

    GetDlgItem(IDC_EDIT_KUNDE)->EnableWindow(FALSE);
    

    sollte es funktionieren.

    MFG
    Kai



  • Funktioniert nicht. Die Felder bleiben aktiv!



  • shreibe mal FALSE gross!

    Gruß

    TT



  • Folgendes Problem:

    void CWibuTestDlg::OnButtonLesen() 
     {
    
      GetDlgItem(IDC_STATIC_PROJECT)->EnableWindow(false);
      GetDlgItem(IDC_CHECK_MASTER)->EnableWindow(false);
      GetDlgItem(IDC_EDIT_KUNDE)->EnableWindow(false);
      UpdateData(false);
    
      int tmp = ProjectDongle(wert1,wert2);  
    
      GetDlgItem(IDC_STATIC_PROJECT)->EnableWindow(true);
      GetDlgItem(IDC_CHECK_MASTER)->EnableWindow(true);
      GetDlgItem(IDC_EDIT_KUNDE)->EnableWindow(true);
      UpdateData(false);
    
    }
    

    Das Edit Feld wird erst nach Beenden der Funktion aktualisiert.
    Alle anderen jedoch vorher (nach dem 1. UpdateData).
    Wer weiß warum?

    [ Dieser Beitrag wurde am 09.10.2002 um 13:49 Uhr von der_aus_muenster editiert. ]



  • UpdateData(false) ist komplett überflüssig. Das liegt wohl daran, dass EnableWindow die Message zum disablen sendet, aber nicht wartet, bis sie auch bearbeitet wurde, sondern sofort zurückkehrt.



  • Alles klar, schon gefunden.
    Anschließend ist scheinbar ein:

    GetDlgItem(IDC_EDIT_KUNDE)->RedrawWindow();

    erforderlich.

    Dann funktionierts.



  • Original erstellt von dEUs:
    UpdateData(false) ist komplett überflüssig.

    [ironie]
    kompletter BLÖDSIN!!! Es kann nie schaden Daten hin und her zu Transferieren
    [/ironie]


Anmelden zum Antworten