EDIT Control soll nur ein Zeichen akzeptieren



  • Hallo,

    Ich möchte gerne EDIT Controls erstellen die nur ein Zeichen als eingabe annehmen.
    (und nur Ziffern). Soll ein Sudoku Programm werden...

    Das mit den Ziffern habe ich mit ES_NUMBER hinbekommen.
    Allerdings kann man noch mehrere Zahlen eingeben.

    Eine Idee war die Schriftgröße so groß zu machen,
    dass nur ein Zeichen in die Box passt.

    Eine andere Lösung wäre mir aber lieber.

    So erstelle ich bisher die EDIT Boxen.

    boxes[n] = CreateWindow("EDIT",
                     "",
                     WS_VISIBLE | WS_CHILD | WS_BORDER | ES_NUMBER,
                     x,
                     y,
                     2*RASTERSIZE,  // width
                     2*RASTERSIZE,   // height
                     hwnd,
                     (HMENU)BoxID, GetModuleHandle(NULL), NULL);
    


  • Schau dir mal die EN_UPDATE-Nachricht an.
    Alternativ könntest du das Control subclassen und die WM_KEYDOWN-Nachricht abfangen, wenn GetWindowTextLength() größer 0 ist.



  • Ich seh gerade, dass EM_LIMITTEXT genau das ist, was du suchst.



  • Super, funktioniert!

    Danke 🙂


Log in to reply