我正在尝试在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键?
感谢
答案 0 :(得分:3)
最简单的做法是什么 这个,而不必使用ncurses?
到目前为止,使用 ncurses (或等效的库)是这样做的简单方法。
您似乎忘记标签只是按行读取时的另一个字符(如cin>>name;
中所示)。要模拟 ncurses ,您的程序将需要处理多类键击(退格键,制表符,箭头,字符,数字,甚至功能键等),做适当的事情,正确维护状态屏幕和光标的位置 - 全部读取用户的三个文本字段。
考虑花几个小时仔细阅读source code,即使你不使用它,你可能会学到很多东西(这是一个严肃的建议,BTW)。