Comment utilise le souris sur console e C

jis -  
[Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   -
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

  1. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    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
    1. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
       
      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
  2. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    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