A range validation Edit control

Download Source Code and Example


In a project that I am working with about 6 people, we were using spin controls and edit controls to allow the operator to change certain values. We decided we needed one way to handle invalid data typed in the edit control by the operator. The best solution we came up with was to sub-class CEdit, and validate the operators key-strokes.

  1. Ensure that the edit control has the number only style set to TRUE.
  2. Then you need to include the "CRangeEdit.h" in your dialog definition file, and declare CRangeEdit member variables for each edit control that you need to check the range of an operators input.
  3. Then you must set the range the CRangeEdit will accept from the operator, using the CRangeEdit::SetRange() method. The CRangeEdit will default to 0-100 range.
  4. Set the default contents of the control using CWnd::SetWindowText().

You should be ready to go!

Last updated: 29 April 1998


Comments

  • Why not DDV??

    Posted by zmdmustafa on 04/08/2004 05:02am

    With the help of class wizard we can use DDV to handle the same, why to take all these pain?

    Reply
  • Question

    Posted by Legacy on 08/06/2002 12:00am

    Originally posted by: Ramesh

    I have an Edit Control in VC++, and I basically use it for logging. So I assign the member variable to the log info I wanr and then I use the UpdateData(FALSE).
    Now the proble I have is I want the new line charter to function as new line, but instead it display some special character there. How do I send a new line character to my Edit Control.

    Reply
  • Min Max

    Posted by Legacy on 06/06/2002 12:00am

    Originally posted by: Derrick

    I think your idea is great but, there is still a small problem. The code works fine when setting a MIN value of 0 but anything above the code doesn't work properly.

    • trail

      Posted by mallikarjuna_kilari on 08/05/2007 11:45am

      just for checking i asked that que.

      Reply
    Reply
  • ExEditors Library

    Posted by Legacy on 03/19/2002 12:00am

    Originally posted by: Mike Philips

    A complete collection of editors in a single file:
    
    

    http://www.exontrol.com/sg.jsp?content=products/exeditors

    Regards,
    Mike

    Reply
  • A little enhancement

    Posted by Legacy on 08/06/1999 12:00am

    Originally posted by: Marcelo Rego

    I found your code very useful, however I
    
    had need to output an error message to user
    and not just the "windows beep".
    So, I just added a SetErrorMsg to your code, which
    tells CRangeEdit which error message to display.
    Here are some pieces of the code (mixed with the
    original).

    .....
    .....
    // Implementation
    void SetRange ( LONG inLMin, LONG inLMax );
    void SetErrorMsg(CString ErrorMessage);

    private:
    // Implementation
    void RemoveLeadingZeros ( void );

    // Attributes
    LONG myMax;
    LONG myMin;
    LONG myLastValidValue;
    CString ErrorMsg;

    ....
    ....

    void CRangeEdit::SetErrorMsg(CString ErrorMessage)
    {
    ErrorMsg = ErrorMessage;
    }


    And, you should substitute the MessageBeep(XXX)
    for something like an AfxMessageBox(ErrorMsg).


    Reply
Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • The future of cloud platforms is at hand. Even if your cloud applications are basic now, your next set of apps will require strong analytics services and tools, as well as features that ease enterprise integration. To fill these needs, consider using not only your current cloud provider but also specialists. Take advantage of not only the big cloud platforms, but also specialized providers in vertical industries; countries and regions; and functional domains including omnichannel, analytics, integration, and …

  • Featuring Art Schoeller, VP and Principal Analyst, Forrester Research Wednesday, August 31, 2016 10:00 AM PT | 1 PM ET If Agility Is Essential to Your Business Survival--Now's the Time to Start the Move to Cloud! The maturity of cloud platforms has given organizations new confidence in moving mission-critical systems to the cloud, to gain agility, scale and realize cost benefits in the process. How can your company achieve these benefits, and what steps are necessary to begin your contact center's …

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date