Edit Control (Schrift, Farbe, Grösse, Hintergrund, 0-9 und ,)
-
Hi
ich hätte da eine frage wie kann ich die Schrifteigenschaften, Farbe oder Hintergrundfarbe ein Edit Control Steuerelementes ändern bzw. einstellen.
Ausserdem möchte ich nur die Eingabe von zahlen von 0-9 und das komma zeichen zulassen.
Habe bis jetzt nichts gefunden.
-
Farbe und Hintergrundfarbe geht mit OnCtlColor - leider geht die Suche nicht, sonst könnte ich dir einen Link geben. Kannst ja mal die MSDN nach WM_CTL_COLOR fragen.
Für 0-9 gibt es in den Einstellungen für das Edit ein Häkchen. Oder du machst dein eigenes Edit und bearbeitest das in PreTranslateMessage.
-
für 0 bis 9 schon aber nicht für das Komma
-
Naja, da kommt dann der zweite Teil: Eigene Klasse und PreTranslateMessage überschreiben.
Wie das geht: Keine Ahnung, guck bei CodeProjct. Versuch mal als Suchbegriff numeric edit. Ich glaube sowas gibt es schon.
-
Servus,
Trage das bei dem EN_CHANGE Ereignis von deinem Edit ein:
CString strEdit; int iEditString, iPos = 0; char cEdit; CEdit* pEdit = (CEdit*)GetDlgItem(IDC_EDIT1); pEdit->GetWindowText(strEdit); iEditString = strEdit.GetLength(); if (iEditString != 0) { for (int i = 0; i <= iEditString; i++) { cEdit = strEdit[i]; if (cEdit < 48 || cEdit > 57) { if (cEdit != 46) { pEdit->SetSel(iPos, iPos +1, FALSE); pEdit->Clear(); iPos--; } } iPos++; } }
und schon löscht er dir alle ungültigen Zeichen. Das ist nur ein Bsp. das ich flux auf die schnelle gemacht habe. Solltest dabei auf eventuelle Fehler achten.
Einfärben:
HBRUSH CDeinDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); if (pWnd->GetDlgCtrlID()==ID_CONTROL) { pDC->SetTextColor(RGB(255,0,0)); //Textfarbe pDC->SetBkMode(TRANSPARENT); HBRUSH B = CreateSolidBrush(RGB(192,192,192)); //Hintergrundfarbe return (HBRUSH) B; } return hbr; }
Viel Spaß
*winke*
HellsgoreEDIT: Fehler beseitigt
-
Da ich es auch gerade brauche hab ich kurz gesucht:
http://www.codeproject.com/editctrl/NumEditCtl.asp
-
super hellsgore
kannst leider hast du denn punkt erlaubt und nicht das komma
was für einen wert hat denn das komma ??
-
Guckst du: http://www.torsten-horn.de/techdocs/ascii.htm
Da gibs eine schöne ASCII Tabelle. Nachgucken und umbauen
*winke*
Hellsgore
-
vielen dank schon geschehen
danke