CInputBox 1.0
A CFrameWnd derived class that provides functionality similar to the VB InputBox function. You don't need a dialog resource to use the class!

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?
- Now call
CloseBox to avoid memory leaks m_inputbox->CloseBox();
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
Conclusion
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.