Click here to Skip to main content
14,542,649 members

CInputBox 1.0

Rate this:
4.81 (48 votes)
Please Sign up or sign in to vote.
4.81 (48 votes)
30 Nov 2001CPOL
A CFrameWnd derived class that provides functionality similar to the VB InputBox function. You don't need a dialog resource to use the class!

Image 1

What the class does for you?

I've seen people often asking whether there is something in C++ like the InputBox function in Visual Basic. I guess the easy way is to create your own dialog class. But I thought an easier way would be to write a class that is not dependent on a resource. CInputBox can be used without having to create a dialog resource. It allows you to set the title of the input-box, the prompt and also the default text.

There are just two public functions in addition to the constructor, of course. The constructor needs to be passed a CWnd*. Mostly you can pass this as that parameter.

The main member function is ShowInputBox which is declared as follows:

int ShowInputBox(CString,CString,CString);

The first CString is the prompt to show. The second CString is the title text for the input-box and the third CString is the default text. All three may be null strings. Though I don't see that happening often for the first two parameters.

Always, always call CloseBox after you have shown the input-box. You can only show the box once. If you want to show it again you MUST call CloseBox and then start all over again from object-construction.

How to use the class?

  • First create your CInputBox object
    CInputBox *m_inputbox = new CInputBox(this);
  • Now call the ShowInputBox function passing the prompt text, the title text and the default text
    int rv = m_inputbox->ShowInputBox("Enter your age","Age box","");
  • Find out whether they cancelled the box or whether they clicked OK
        MessageBox("","You cancelled");
  • If they clicked OK you can retrieve the entered text using the InputText public member variable
        MessageBox(m_inputbox->InputText,"the text you entered");
  • Now call CloseBox to avoid memory leaks

Some points that you should keep in mind

  • You can only call ShowInputBox once per object-life-time. Means you simply do it in three steps. Create the object, show the box, close the object. If you need to show an input-box more than once, then for each time you need to follow all three steps.
  • For some strange and as of now unknown reason, on one occasion, my sample program that used this class didn't terminate and was left hanging in memory. I haven't traced the problem yet. But please do let me know if you face a similar problem


This is just version 1. I guess it needs a lot of enhancements like the ability to call ShowInputBox repeatedly and the ability to specify the size and location of the window. I'll do that when I have time.


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Nish Nishant
United States United States
Nish Nishant is a Principal Software Architect based out of Columbus, Ohio. He has over 17 years of software industry experience in various roles including Lead Software Architect, Principal Software Engineer, and Product Manager. Nish was a Microsoft Visual C++ MVP between 2002 and 2015.

Nish is an industry acknowledged expert in the Microsoft technology stack. He authored C++/CLI in Action for Manning Publications in 2005, and had previously co-authored Extending MFC Applications with the .NET Framework for Addison Wesley in 2003. In addition, he has over 140 published technology articles on and another 250+ blog articles on his WordPress blog. Nish is vastly experienced in team management, mentoring teams, and directing all stages of software development.

Contact Nish : If you are interested in hiring Nish as a consultant, you can reach him via his google email id voidnish.

Company Website :

Comments and Discussions

QuestionA couple of slight mods Pin
Doug Joseph13-Oct-11 15:01
MemberDoug Joseph13-Oct-11 15:01 
AnswerRe: A couple of slight mods Pin
Nish Nishant14-Oct-11 5:19
sitebuilderNish Nishant14-Oct-11 5:19 
GeneralMy vote of 5 Pin
Doug Joseph13-Oct-11 14:43
MemberDoug Joseph13-Oct-11 14:43 
GeneralRe: My vote of 5 Pin
Nish Nishant14-Oct-11 5:19
sitebuilderNish Nishant14-Oct-11 5:19 
QuestionWhere are the explainations? Pin
Umander12-Mar-08 4:51
MemberUmander12-Mar-08 4:51 
GeneralOne bug, one improvement (IMHO) Pin
mssg6-Mar-04 1:04
Membermssg6-Mar-04 1:04 
Generalthread keeps running in some cases Pin
richard sancenot22-Nov-03 9:42
Memberrichard sancenot22-Nov-03 9:42 
AnswerRe: thread keeps running in some cases Pin
Gorelik Sasha6-Jan-06 1:31
MemberGorelik Sasha6-Jan-06 1:31 
GeneralThanks a lot Pin
Melescher12-May-03 23:29
MemberMelescher12-May-03 23:29 
QuestionWhy oh Why? Pin
James Curran3-Dec-01 8:43
MemberJames Curran3-Dec-01 8:43 
AnswerRe: Why oh Why? Pin
Nish Nishant3-Dec-01 16:11
sitebuilderNish Nishant3-Dec-01 16:11 
AnswerRe: Why oh Why? Pin
Chris Maunder4-Jul-02 18:14
cofounderChris Maunder4-Jul-02 18:14 
QuestionWhy? Pin
1-Dec-01 10:28
suss1-Dec-01 10:28 
AnswerRe: Why? Pin
Uwe Keim1-Dec-01 12:20
sitebuilderUwe Keim1-Dec-01 12:20 
GeneralRe: Why? Pin
CMFC6.0VS.NETUser3-Dec-01 4:35
MemberCMFC6.0VS.NETUser3-Dec-01 4:35 
GeneralRe: Why? Pin
J Patel3-Dec-01 11:08
MemberJ Patel3-Dec-01 11:08 
GeneralRe: Why? Pin
Zac Howland4-Jun-02 6:23
MemberZac Howland4-Jun-02 6:23 
GeneralRe: Why? Pin
JohnAtTopcon6-May-03 23:47
MemberJohnAtTopcon6-May-03 23:47 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Posted 30 Nov 2001


27 bookmarked