Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Advanced Developers Conference     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: MFC (Visual C++) ::  CEdit-Box und Fließkommazahlen     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
martin_zi
Mitglied

Benutzerprofil
Anmeldungsdatum: 07.05.2007
Beiträge: 152
Beitrag martin_zi Mitglied 14:15:33 10.03.2010   Titel:   CEdit-Box und Fließkommazahlen            Zitieren

Hallo

Gibt es eine einfach Möglichkeit ? In einer CEdit-Box Fließkommazahlen zu erlauben?

Also so dass "klefjj" nicht erlaubt ist aber "2.9" schon ?

Ich wüsste jetzt nur Eine Eingenklasse von CEdit abzuleiten und OnChar zu überschrteiben...
Geht das leichter ?

Gruß
Martin
martin_zi
Mitglied

Benutzerprofil
Anmeldungsdatum: 07.05.2007
Beiträge: 152
Beitrag martin_zi Mitglied 12:11:04 11.03.2010   Titel:              Zitieren

Hallo

Ok achja ich hab das jetzt schnell so gelöst.
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
afx_msg void CEditFloat::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
   if ( (nChar >= '0' && nChar <='9') ||  (nChar == '.' && NoPointInText() )|| nChar == VK_BACK)
   {  
       CEdit::OnChar(nChar, nRepCnt, nFlags);
   }
   else
   {
       ShowBalloonTip(_T("Unacceptable Character"),_T("You can only type a number here."),TTI_ERROR);
       MessageBeep(-1);
   }
}

bool CEditFloat::NoPointInText()
{
    CString text;
    GetWindowText(text);

    if (text.Find('.') == -1)
        return true;
    else
        return false
;
}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
afx_msg void CEditFloat::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
if ( (nChar >= '0' && nChar <='9') || (nChar == '.' && NoPointInText() )|| nChar == VK_BACK)
{
CEdit::OnChar(nChar, nRepCnt, nFlags);
}
else
{
ShowBalloonTip(_T("Unacceptable Character"),_T("You can only type a number here."),TTI_ERROR);
MessageBeep(-1);
}
}

bool CEditFloat::NoPointInText()
{
CString text;
GetWindowText(text);

if (text.Find('.') == -1)
return true;
else
return false
;
}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
afx_msg void CEditFloat::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
   if ( (nChar >= '0' && nChar <='9') ||  (nChar == '.' && NoPointInText() )|| nChar == VK_BACK)
   {  
       CEdit::OnChar(nChar, nRepCnt, nFlags);
   }
   else
   {
       ShowBalloonTip(_T("Unacceptable Character"),_T("You can only type a number here."),TTI_ERROR);
       MessageBeep(-1);
   }
}

bool CEditFloat::NoPointInText()
{
    CString text;
    GetWindowText(text);

    if (text.Find('.') == -1)
        return true;
    else
        return false
;
}

Dabei ist mir aufgefallen dass die CEdit-box die Fehlermeldung nicht lokalisiert.
Also hab ichs fürs erste gleich gemacht.

Das was mich halt etwas stört an der Lösung ist:
Dass es ja auf einem anderem System mit andere Sprache vielleicht nicht das "." als Trennzeichen gilt.
Kann man das irgendwie auslesen ?
C/C++ Forum :: MFC (Visual C++) ::  CEdit-Box und Fließkommazahlen   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.