web-dev-qa-db-fra.com

Comment créer une interface graphique pour une application Windows en utilisant C ++?

Je décide comment développer une interface graphique pour un petit projet d'api c ++/win32 (fonctionnant Visual Studio C++ 2008). Le projet n'aura besoin que de quelques composants pour démarrer le processus principal, il sera donc très léger (juste 1 bouton et une zone de texte à peu près ...). Ma question est la suivante:

Je n'ai pas d'expérience dans le développement d'interfaces graphiques sur Windows mais je peux apprendre facilement. Alors, que dois-je utiliser? Un éditeur visuel (génération de code par glisser-déposer: ma préférence pour la conception de GUI de bureau de loin (Java/swing)). Ou devrais-je utiliser une bibliothèque spécifique? Quoi qu'il en soit, QUELLE bibliothèque ou éditeur visuel dois-je utiliser? J'ai entendu quelqu'un mentionner l'écriture de l'interface graphique en C #, puis appeler le code C++ ... le problème est que c'est une interface graphique si simple que je trouverais plus facile de tout garder en C++, mais je suis ouvert à tout meilleure suggestion est.

24
Zombies

Si vous utilisez une interface graphique très simple et que vous utilisez déjà Visual Studio, il peut être judicieux de simplement utiliser MFC. Vous pouvez simplement utiliser l'Assistant Visual Studio MFC pour créer une application basée sur une boîte de dialogue, déposez deux contrôles dessus et c'est parti.

Le MFC est daté et a sa juste part de désagréments, mais il fera certainement le travail pour vous si vous ne parlez que d'un bouton et d'une zone de texte.

Je n'ai aucune expérience avec Qt, donc je ne peux pas comparer les deux.

13
17 of 26

la meilleure bibliothèque GUI C++ de loin est Qt , elle est complète, facile à apprendre, vraiment rapide et multiplateforme.

ah, il a récemment obtenu une licence LGPL, alors maintenant vous pouvez le télécharger gratuitement et l'inclure dans les programmes commerciaux

15
Javier

Je préfère fortement utiliser simplement Microsoft Visual Studio et écrire une application Win32 native.

Pour une interface graphique aussi simple que celle que vous décrivez, vous pouvez simplement créer un Dialog Box et l'utiliser comme fenêtre principale de votre application. L'application par défaut créée par l'Assistant Projet Win32 dans Visual Studio ouvre en fait une fenêtre, vous pouvez donc remplacer cette fenêtre avec votre boîte de dialogue et remplacer le WndProc par un similaire (mais plus simple) DialogProc .

La question est donc celle des outils et des coûts. Express Edition de Visual C++ fait tout ce que vous voulez, sauf créer la ressource de modèle de dialogue. Pour cela, vous pouvez soit le coder dans le fichier RC à la main ou en mémoire à la main . Connexes SO question: Dialogues API Windows sans utiliser de fichiers de ressources .

Ou vous pouvez essayer l'un des éditeurs de ressources gratuits que d'autres ont recommandé.

Enfin, le Visual Studio 2008 Standard Edition est une option plus coûteuse mais vous offre un éditeur de ressources intégré.

10
David Citron

Créez simplement une nouvelle application MFC C++. Il est intégré, assez facile, et des milliers d'exemples existent dans le monde ...

De plus, vous pouvez concevoir votre boîte de dialogue directement dans Visual Studio, leur donner des noms de variable et 90% du code est généré pour vous.

3
LarryF

Je déconseille fortement d'utiliser Win32 ordinaire car il est assez difficile de le faire fonctionner correctement dans toutes les situations, c'est un travail assez ennuyeux et fastidieux et la bibliothèque de contrôles communs n'est pas ça complète. De plus, la plupart du travail a été fait pour vous.

Chaque fois que je finis par faire du Win32 simple, je dois passer au moins quelques heures sur les tâches les plus triviales car je dois rechercher tous les paramètres, drapeaux, fonctions, macros et trouver comment les connecter correctement. Je préfère généralement une simple solution de type glisser-déposer ne pas me faire utiliser mon cerveau et claquer la chose ensemble en 2 minutes.

En tant que boîte à outils légère, je suggère omgui qui a une API propre et jolie. Cependant, il ne vient avec aucun outil.

Si vous avez besoin d'une prise en charge d'outils, vous finirez probablement par vouloir opter pour MFC (éditeur de ressources intégré à Visual Studio) ou Qt. Je ne sais pas si wxWidgets a des outils, mais je suppose que oui.

Edit: David Citron mentionne que, apparemment, l'éditeur de ressources dans Visual Studio génère des fichiers de ressources compatibles Win32, c'est donc probablement la façon préférée de faire les choses si vous le souhaitez garder les choses simples.

3
Jasper Bekkers

Évitez QT (pour les noobs) ou toute bibliothèque inutile (absurde pour une chose aussi basique)

Utilisez simplement l'Assistant API VS Win32, annoncez le bouton et la zone de texte ... et c'est tout!

En 25 secondes!

2
ghkio

Qt de Nokia est définitivement la voie à suivre. Une autre option est gtk, mais Qt est mieux supporté et documenté. De toute façon, ils sont tous les deux gratuits. Et les deux sont largement utilisés et bien connus, il est donc facile de trouver des réponses à vos questions.

2
Chris

Pour une application aussi simple, même le MFC serait exagéré. Si vous ne voulez pas introduire une autre dépendance, faites-le simplement dans Vanilla Win32. Ce sera plus facile pour vous si vous n'avez jamais utilisé de MFC.

Découvrez le classique "Programmation Windows" de Charles Petzold ou un didacticiel en ligne (par exemple http://www.winprog.org/tutorial/ ) et vous êtes prêt à partir.

2
devdimi

Une simple "fenêtre" avec du texte et un bouton n'est qu'un MessageBox. Vous pouvez les créer avec un seul appel de fonction; vous n'avez besoin d'aucune bibliothèque.

1
MSalters

Si vous voulez en savoir plus sur win32, WTL http://wtl.sourceforge.net/ est l'équivalent assez léger de MFC, mais vous devez aimer le modèle pour l'utiliser.

Si vous voulez que quelque chose de simple MFC soit déjà intégré à VS, il a déjà une grande base de code supplémentaire et des solutions de contournement de bogues connus sur le net.

De plus, Qt est vraiment un cadre génial, il a un bel ensemble d'outils, un éditeur de dialogue, des thèmes et beaucoup d'autres choses, en plus de votre application sera prête à être multiplateforme, bien qu'il faudra un certain temps pour s'y habituer.

Vous avez également Gtk, wxWindow, et vous n'aurez aucun problème si vous l'avez déjà utilisé sur Linux.

1
Ismael

J'ai utilisé wxWidgets pour de petits projets et j'ai adoré. Qt est un autre bon choix, mais pour une utilisation commerciale, vous devrez probablement acheter une licence. Si vous écrivez en C++ n'utilisez pas l'API Win32 car vous finirez par le rendre orienté objet. Ce n'est pas facile et prend du temps. L'API Win32 a également trop de macros et semble trop compliquée pour ce qu'elle offre.

0
jpastuszek