Edit Feld für Datumseingaben nutzen



  • Hallo erstmal.

    Nachdem ich bei der Suche nicht besonders erfolgreich war, poste ich das ganze mal.

    Ich stehe vor folgendem Problem: Ich möchte ein Edit Feld so konfigurieren, dass der Benutzer darin nur Datumseingaben machen kann. Ich habe schon rumprobiert, ob das über zuweisen einer Membervariablen vom Typ COleDateTime geht. Leider nicht.

    Laut MSDN scheint so etwas auch nicht vorgesehen zu sein, dort wird man immer auf das DateTimePicker Feld hingewiesen. 😞

    Das möchte ich aber nicht unbedingt benutzen, hab da ne persönliche Abneigung. :p

    Würde dann das Feld gerne mit "..____" beim OnInitDialog vorbelegen und am genialsten wäre es, wenn die Punkte bestehen bleiben würden und der Benutzer bei der Eingabe halt nur die Underscores durch Zahlen ersetzt. Das bekäme ich noch selbst hin.

    Bin für jede Hilfe und Anregung dankbar.

    Gruß

    M.



  • Also ich hätte das so gemacht.

    Ich würde erstmal eine eigene Klasse für das Edit Control erstellen und dann die WM_CHAR verwenden :

    void CTestDlg::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) 
    {
    	if(isdigit(nChar)) // Wenn eine Zahl eingetippt wurde
    	{	
    		CEdit::OnChar(nChar, nRepCnt, nFlags); // Dann Zahl schreiben
    	}
    	else
    	{
    		if(nChar == '.') // Und wenn ein '.' eingetippt wurde
    		{
    			CEdit::OnChar(nChar, nRepCnt, nFlags); // dann Punkt schreiben
    		}
    	}
    }
    

    Somit sind alle Buchstaben, Kommas, Bindestriche etc. ungültig !

    Gruß
    :: NoName ::


Anmelden zum Antworten