EN_CHANGE - Frage
-
Guten Morgen @All!
Folgendes: 2 Eingabefelder die mit EN_CHANGE überwacht werden und bei richtiger Eingabe einen Button freigeben:
// Zahlentests: BOOL CKundenInfo::IsKdnr() { int n, s; GetDlgItemText(IDC_INFO_KDNR,kundennummer); for (n=0; n<k; n++) { if( kundennummer == m_gw_kunde.Sheet(0).Cell(n+1,1).GetText()) return FALSE; } for(s=0; s<=kundennummer.GetLength()-1; s++) { TCHAR z = kundennummer[s]; if(!isdigit(z)) return FALSE; } if (kundennummer.IsEmpty()) return FALSE; return TRUE; } BOOL CKundenInfo::IsUnternehmen() { GetDlgItemText(IDC_INFO_UNTERNEHMEN,unternehmen); if (unternehmen.IsEmpty()) { return FALSE; } return TRUE; } // und hier die EN_CHANGE Funktionen: void CKundenInfo::OnChangeInfoKdnr() { fIsAll = TRUE; if (!IsKdnr()) fIsAll=FALSE; if (fIsAll) GetDlgItem(ID_RECORD_ADD)->EnableWindow(TRUE); else GetDlgItem(ID_RECORD_ADD)->EnableWindow(FALSE); } void CKundenInfo::OnChangeInfoUnternehmen() { fIsAll = TRUE; if(!IsUnternehmen()) fIsAll=FALSE; if(fIsAll) GetDlgItem(ID_RECORD_ADD)->EnableWindow(TRUE); // Button freigeben else GetDlgItem(ID_RECORD_ADD)->EnableWindow(FALSE); // Button sperren }:p
Wie gesagt geben die den Button Record_Add frei. Jedoch bekomme ich es nicht hin, daß die Eingabefelder beide gleichzeitig überwacht werden.
Wenn ich z.B. in 'Kundennummer' eine Ziffer eingebe wird der Button freigegeben, obwohl 'Unternehmen' noch leer ist. Umgedreht genauso.
Es soll aber abgewartet werden bis bei beiden Eingabefeldern die Eingabe des Benutzers korrekt und vollständig sind und dann erst der Button freigegeben wird.

Vielen Dank für Eure Lösungsvorschläge
MfG
RunSeb
-
void CKundenInfo::OnChangeInfoKdnr() { VerifyInput(); } void CKundenInfo::OnChangeInfoUnternehmen() { VerifyInput(); } void CKundenInfo::VerifyInput() { fIsAll = TRUE; if (!IsKdnr() || !IsUnternehmen()) fIsAll=FALSE; GetDlgItem(ID_RECORD_ADD)->EnableWindow(fIsAll); } oder noch kürzer void CKundenInfo::VerifyInput() { GetDlgItem(ID_RECORD_ADD)->EnableWindow(IsKdnr() && IsUnternehmen()); }
-
Eine sehr elegante Lösung ( zudem sehr kurz und überschaubar )
wie ich finde!!

Herzlichen Dank, es funzt wunderbar!!!
