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
The main member function is
ShowInputBox which is declared as follows:
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
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
and then start all over again from object-construction.
How to use the class?
- 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
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.