Comment utilise le souris sur console e C

Fermé
jis - 18 juil. 2019 à 00:19
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 18 juil. 2019 à 17:22
Bonjour !
J'ai écrit un programme en C d 'ou j'utilise des switch dans l'option du menu maintenant j'aimerais pouvoir utiliser le souris pour faire le choix et je ne sais pas comment le faire en console svp qlq'un aide moi à le résoudre!

2 réponses

[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié le 18 juil. 2019 à 13:18
Salut jis,

Tu as plusieurs choix.

1.

Tu peux faire un programme graphique Windows (GUI), afin d'avoir une vraie fenêtre graphique, au lieu d'une fenêtre de terminal, des vrais boutons à cliquer, etc.

Tu peux faire cela avec l'API Win32 et MinGW. Il te faudra refaire ton programme de zéro, et apprendre à programmer ce type d'applications.

https://docs.microsoft.com/en-us/windows/win32/learnwin32/learn-to-program-for-windows

il y a aussi de nombreux tutoriels par ailleurs, par exemple :

http://www.winprog.org/tutorial/start.html

2.

Tu peux conserver un programme console et utiliser une bibliothèque te permettant de gérer des widgets textuels et la souris (TUI) :

https://en.wikipedia.org/wiki/Text-based_user_interface
https://en.wikipedia.org/wiki/Text-based_user_interface#Examples_of_programming_libraries

Par exemple avec Curses, ou Turbo Vision. Ce n'est pas tout à fait d'un apprentissage facile et suppose que tu saches installer et utiliser ces bibliothèques, mais la courbe d'apprentissage est certainement moins grande qu'avec l'option précédente.

3.

Il y a une option "bricolage" qui nécessite nettement moins d'apprentissage que les deux autres, et qui consisterait à utiliser un programme comme Zenity, ou YAD (Yet Another Dialog), qui sont des programmes pouvant être lancés en ligne de commande pour afficher des fenêtres avec des contenus dépendant des paramètres de ligne de commande que tu leur passes, et pouvant les résultats de leur exécution.

Zenity a été porté sous Windows : https://github.com/kvaps/zenity-windows
son manuel est disponible là : https://help.gnome.org/users/zenity/

Tu peux exécuter Zenity en C avec
popen()
(plutôt que
system()
) pour récupérer la sortie générée par Zenity

Sous Windows, c'est _popen ou _wpopen :

https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/popen-wpopen?view=msvc-160&viewFallbackFrom=vs-2019

Un exemple d'usage de
popen()
pour récupérer la sortie écran d'un programme :

https://stackoverflow.com/questions/43116/how-can-i-run-an-external-program-from-c-and-parse-its-output

Dal
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
18 juil. 2019 à 17:03
je m'aperçois qu'il manque un mot dans mon bout de phrase "et pouvant les résultats de leur exécution", où on devrait lire : "et pouvant retourner les résultats de leur exécution."
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié le 18 juil. 2019 à 17:23
Par exemple, la commande suivante :

zenity --list --title="Mon joli menu" --column="Choix" --column="Description" 1 "Faire une addition" 2 "Faire une soustraction" 3 "Quitter"


Affiche la fenêtre suivante (sous Linux) :


et si tu cliques sur le premier choix et tu valides, Zenity renvoie "1" sur la sortie standard.

Tu peux lancer cette commande Zenity avec popen() et récupérer la sortie standard comme illustré dans le lien que j'ai posté précédemment.

https://stackoverflow.com/questions/43116/how-can-i-run-an-external-program-from-c-and-parse-its-output

Dal
0