TEdit 의 Style 에 ES_NUMBER 를 추가하면 된다.
아래는 코드 상에서 컨트롤을 바꿔서 처리하는 예제다.


class TEdit : public Stdctrls::TEdit
{
    typedef Stdctrls::TEdit inherited;

protected:
    virtual void __fastcall CreateParams(TCreateParams &Params)
    {
        inherited::CreateParams(Params);
        Params.Style |= ES_NUMBER;
    }
}

이렇게 하면 아쉽게도 실수('.' 포함 숫자) 처리가 되지 않는다.
직접 숫자 처리를 해 주거나 TEdit.OnKeyPress 에서 '.' 입력 시 SelText = "." 을 해주면 된다. 하지만 이 방법은 Beep 음이 나서 추천하지 않는다.
같은 방법으로 숫자 이외의 특정 문자를 입력 가능하게 할 수 있지만 Beep 음이 난다.
이 방법은 정수처리에만 적용하길 추천한다.

+ Recent posts