win32控制台 - 表单示例!

时间:2010-05-30 02:36:58

标签: c++

我正在尝试在c ++ win32控制台应用程序中构建一个简单的表单。 而不是使用cin并继续提示用户输入详细信息,我想显示表单标签,然后使用tab键,允许用户通过标签。

最简单的方法是什么,而不必使用ncurses?

所有我需要的是同时在下面的所有内容:

Name:
Username:
Email:

设置名称字段旁边的光标位置,然后每次按Tab键,我gotoxy,并将光标设置在下一个位置,然后将cin设置为下一个变量 例如。 在启动时

gotoxy(nameX, nameY);
cin >> name;

点击标签/输入

gotoxy(usernameX, usernameY);
cin >> username;

点击标签/输入

gotoxy(emailX, emailY);
cin >> email;

这是否可行?

我尝试使用,GetAsyncKeyState和键盘事件进行while循环,但cin在该循环中无法正常工作。

是否有一个超级简单形式的好例子,或者这样做的参考? 我知道如何设置SetConsoleCursorPosition,但是如何在能够捕获cin的同时实现Tab键?

感谢

1 个答案:

答案 0 :(得分:3)

  

最简单的做法是什么   这个,而不必使用ncurses?

到目前为止,使用 ncurses (或等效的库)这样做的简单方法。

您似乎忘记标签只是按行读取时的另一个字符(如cin>>name;中所示)。要模拟 ncurses ,您的程序将需要处理多类键击(退格键,制表符,箭头,字符,数字,甚至功能键等),做适当的事情,正确维护状态屏幕和光标的位置 - 全部读取用户的三个文本字段。

考虑花几个小时仔细阅读source code,即使你不使用它,你可能会学到很多东西(这是一个严肃的建议,BTW)。