Well...
Games flow best as a frame based state engine... In that situation, it is best (in my opinion) to use a key sample, like dbInKey, and do the text screen placement yourself. You have to trap and lock the key until it is released though, because the sampling happens so fast (30-60 FPS if it is designed right) that just tapping the key will give you at least 3 inputs. Something like this would stop that for you:
// input would be a char = 0 if no input, and an ascii value when a key is pressed
if (input)
{
if(!locked)
{
locked = true;
// process input
}
}
else
locked = false;
with this, consecutive frames that have the input will only process the input one time. The else unlocks the input on the first frame without an input. Never pause a frame based state engine, even for the user typing. always find a way to let the computer run frames as fast as possible. You can do other things, like move sprites, and make it nice and pretty, while the user is typeing