web-dev-qa-db-fra.com

Comment puis-je faire de la programmation graphique en C?

Je veux faire de la programmation graphique en C. J'ai beaucoup cherché le compilateur qui fournit un riche ensemble de fonctions permettant de faire de la programmation en C, mais je n’ai rien trouvé.

En gros, je veux dessiner des boutons, puis accepter le choix de l'utilisateur et prendre les mesures appropriées. Il serait utile si vous pouvez suggérer un compilateur C ou une bibliothèque que je peux ajouter à mon compilateur. Je travaille sur le système d'exploitation Windows.

Actuellement, j'utilise un compilateur TURBO C qui ne prend pas en charge les méthodes directes de création de boutons. Toute aide serait appréciée.

47
Algorithmist

Ceci est garanti d'avoirrienà voir avec le compilateur. Tout ce que font les compilateurs, c'est de compiler le code qui leur est donné. Ce que vous cherchez, c'est une bibliothèque graphique, sur laquelle vous pouvez écrire du code en utilisant le compilateur de votre choix.

Bien sûr, cela étant dit, votre première tâche à accomplir devrait être de laisser tomber Turbo C. Ce compilateur a environ 20 ans et son utilisation continue ne vous fait aucun avantage. Vous ne pouvez pas écriremodern/ GUI, car cela ne produira que du code 16 bits. Tous les systèmes d'exploitation modernes sont en 32 bits et beaucoup sont maintenant en 64 bits. Il est également intéressant de noter que les éditions 64 bits de Windows n'exécutent pas les applications 16 bits de manière native. Vous aurez besoin d'un émulateur pour cela. cela ne va pas vraiment engendrer beaucoup de sentiment d'accomplissement si vous ne pouvez écrire que des applications qui fonctionnent dans un émulateur DOS. :-)

Visual Studio Express C++ de Microsoft est disponible en téléchargement gratuit . Il inclut le même compilateur disponible dans la version complète de la suite. Le package C++ compile également du code C pur.

Et puisque vous travaillez sous Windows, l’API Windows est un choix naturel. Il vous permet d’écrire des applications Windows natives ayant accès à l’ensemble des contrôles de l’interface graphique. Vous trouverez n didacticiel de Nice ici sur l'écriture d'applications WinAPI en C. Si vous choisissez Visual Studio, il inclut également du code standard pour une application WinAPI vierge qui vous permettra de démarrer rapidement.

Si vous voulez vraiment apprendre à faire cela, le Programming Windows de Charles Petzold est la ressource canonique du sujet et mérite certainement d'être lu. Toute l'API Windows a été écrite en C et il est tout à fait possible d'écrire des applications Windows complètes en C. Vous n'avez pas besoin de stinkin 'C++.

C'est comme ça queje feraisle faire, au moins. Comme le suggèrent les autres réponses, GTK est également une option. Mais les applications qu’il génère sont carrément horribles sous Windows.


EDIT: Oh mon Dieu ... On dirait que vous n'êtes pas le seul à vouloir écrire des applications "GUI" à l'aide d'un compilateur obsolète. Une recherche Google ouvre la bibliothèque suivante: TurboGUI: un framework d'interface graphique pour Turbo C/C++ :

TurboGUI interface sample

Si vous êtes un autre de ces pauvres gens coincés dans le système scolaire indien désespérément obsolète et obligés d'utiliser Turbo C pour compléter vos études, cela pourrait être une option. Je détesterais le recommander, car apprendre à contourner ses limites seracomplètement inutilepour vous une fois votre diplôme obtenu, mais apparemment, il est là pour vous si vous êtes intéressé.

114
Cody Gray

La bibliothèque la plus célèbre pour créer une interface graphique en langage C est certainement GTK .

Avec cette bibliothèque, vous pouvez facilement créer des boutons (pour votre exemple). Lorsqu'un utilisateur clique sur le bouton, un signal est émis et vous pouvez écrire un gestionnaire pour effectuer certaines actions.

15
Sandro Munda

Utilisez les API win dans votre fonction principale:

  1. RegisterClassEx () remarque: vous devez fournir un pointeur sur une fonction (généralement appelée WndProc ) qui gère les messages Windows tels que WM_CREATE, WM_COMMAND, etc.
  2. CreateWindowEx ()
  3. ShowWindow ()
  4. pdateWindow ()

Ensuite, écrivez une autre fonction qui gère les messages de win (mentionnés au n ° 1). Lorsque vous recevez le message WM_CREATE, vous devez appeler CreateWindow (). La classe est quel contrôle est cette fenêtre, par exemple "éditer" est une zone de texte et "bouton" est un bouton .. :). Vous devez spécifier un ID pour chaque contrôle (de votre choix mais unique parmi tous). CreateWindow () renvoie un descripteur à ce contrôle, qui doit être mémorisé. Lorsque l'utilisateur clique sur un contrôle, vous recevez le message WM_COMMAND avec l'ID de ce contrôle. Ici, vous pouvez gérer cet événement. Vous pourriez trouver utile SetWindowText () et GetWindowText () qui vous permet de définir/obtenir le texte de tout contrôle.
Vous n’avez besoin que du SDK win32. Vous pouvez l'obtenir ici .

8
BlackBear

C est plus un langage de programmation matériel, il existe des générateurs d’interface graphique faciles pour C, GTK, Glade, etc. Le problème est de créer un programme en C qui soit la partie la plus facile, de créer une interface graphique qui est une partie facile, le plus difficile est combiner les deux, interagir entre votre programme et l'interface graphique est un casse-tête, et les interfaces graphiques différentes utilisent des méthodes différentes, certaines générant des variables globales, d'autres des créneaux horaires. Il serait bien d’avoir un générateur d’interface graphique qui lierait facilement vos variables de programme C et vos sorties. La programmation en ligne de commande est facile lorsque vous surmontez l’allocation de mémoire et les pointeurs. L’interface utilisateur graphique vous permet d’utiliser un IDE qui utilise le glisser-déposer. Mais je pense qu’il pourrait être plus simple.

5
sergio

API Windows et Kit de développement logiciel (SDK) si vous voulez tout créer vous-même (ou) API Windows et Visual C Express. Obtenez l'édition 2008. Il s’agit d’un logiciel complet pour le développement Windows IDE).

Tous les systèmes d'exploitation sont écrits en C. Ainsi, toute application, console/interface graphique que vous écrivez en C est le mode d'écriture standard du système d'exploitation.

4
Viju

Un compilateur C ne vous fournira pas la fonctionnalité graphique, mais il existe de nombreuses bibliothèques pour ce genre de choses. Le plus populaire est probablement GTK + , mais cela risque d’être un peu trop compliqué si vous débutez et que vous souhaitez obtenir rapidement une interface graphique opérationnelle.

Pour quelque chose d'un peu plus simple, je recommanderais IUP . Avec lui, vous pouvez utiliser un langage de définition d'interface graphique simple appelé LED pour les contrôles de présentation (mais vous pouvez le faire avec du C pur, si vous le souhaitez).

3
David Brown