2010-05-30 4 views
2

J'essaie de créer un formulaire simple dans une application de console C++ win32. au lieu d'utiliser cin et continuer à inviter l'utilisateur à entrer les détails, je voudrais afficher les étiquettes de formulaire, puis en utilisant la touche de tabulation, permettre à l'utilisateur d'aller de l'onglet.console win32 - exemple de formulaire!

Quelle est la manière la plus simple de le faire, sans avoir à utiliser ncurses?

tout ce que je besoin est Cout le ci-dessous à la fois:

Name: 
Username: 
Email: 

définir la position du curseur à côté de nom de champ, chaque fois que vous onglet frappé, je gotoxy, et placez le curseur à la position suivante, puis réglez le cin à la variable suivante par exemple. au démarrage

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

Hit Tab/entrer

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

Hit Tab/entrer

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

est ce même faisable?

J'ai essayé les boucles while, GetAsyncKeyState et les événements de clavier, mais le cin ne fonctionne pas correctement dans cette boucle.

Y at-il un bon exemple pour une forme super simple, ou une référence pour faire cela? Je sais comment SetConsoleCursorPosition, mais comment implémenter la tabulation tout en étant capable de capturer cin?

grâce

+2

Pourquoi ne créez-vous pas une interface graphique? – SLaks

+0

Il s'agit d'un projet Uni requis pour être une application de console win32, où ils voulaient voir l'utilisation de cout, cin, et un tas de fonctions iostream. et c'est pourquoi je n'ai pas utilisé ncurses, car il prend le contrôle de l'écran et je ne pourrai pas utiliser cout, cin etc. – Bach

Répondre

3

Quelle est la façon la plus simple de faire cela, sans avoir à utiliser ncurses?

En utilisant ncurses (ou une bibliothèque équivalent) est- la façon simple de le faire, de loin.

Vous semblez oublier que l'onglet est juste un autre caractère lors de la lecture par lignes (comme dans cin>>name;). Pour émuler ncurses, votre programme devrait gérer plusieurs classes de touches (retour arrière, tabulation, flèches, caractères, chiffres, même touches de fonction, etc.), faire tout ce qui est approprié, maintenir correctement l'état de l'écran, et la position du curseur - tout pour lire trois champs de texte de l'utilisateur. Pensez à passer quelques heures à parcourir le source code, même si vous ne l'utilisez pas, vous pourriez en apprendre beaucoup (c'est une suggestion sérieuse, BTW).

+0

Merci NVRam, au moins maintenant je sais pas mourir sans essayer d'utiliser ncurses. Si ncurses est la solution, je suppose que l'Uni ne s'attend pas à ce que nous l'utilisions. Donc, retour aux invites douteuses, et l'expérience utilisateur des choses. Ncurses est génial, je l'ai implémenté plus tôt quand je faisais des recherches sur les bibliothèques TUI. Merci encore, votre réponse le conclut. – Bach

Questions connexes