Interface graphique à partir de fichiers de ressource - C++ - Programmation
Marsh Posté le 27-07-2005 à 18:35:13
A l'exception des menus, de l'icône et du titre de la fenêtre (donc un CFrameWnd), l'éditeur de ressource ne te sera pas d'une grande aide. Enfin si quelqu'un sait faire ça, je suis preneur.
Marsh Posté le 27-07-2005 à 20:22:14
Dans l'éditeur de source on peut facilement créer des boîtes de dialogue. Je ne vois pas pourquoi on aurait pas le droit d'utiliser ce genre de boîte de dialogue comme fenêtre principale, quand vous faites une interface graphique en C++, vous tappez toute l'affaire ?
En fait je l'ai déjà fait mais je suis très paresseux
Tellement que ça me démange chaque fois d'utiliser Visual Basic... Mais je ne peux pas dans mon cas.
Marsh Posté le 27-07-2005 à 20:52:47
Ca fonctionne en utilisant DialogBox(), une fonction raccourci (macro) de Visual C++ qui appelle RegisterClass et CreateWindow pour vous. Ca fonctionne mais c'est pas la solution la plus élégante...
Et j'utilise l'API win32 (windows.h), pas MFC. Je vais essayer de me renseigner la dessus d'ailleurs.
Marsh Posté le 27-07-2005 à 23:10:44
J'utilise les ressources VC++ pour mes applications et l'APIWIN32.
En utilisant DialogBox(),il faut passer le numéro de ressource avec MAKEINTRESSAOURCE et définir une procédure DialogProc pour intercepter les messages.
Code :
|
Marsh Posté le 28-07-2005 à 09:01:56
C'est une boîte de dialogue (CDialog like) ou une fenêtre (CFrameWnd ou dérivée) l'interface principale de ton application?
Pour une fenêtre, je ne connais aucun moyen de faire du "tout en un" avec l'éditeur de ressources. Pour un dialogue, tu as CDialog(CWnd* pParentWnd, UINT nTemplateID). Mais l'assistant de Visual te permet de créer une application qui a pour interface principale un dialogue (modal).
Marsh Posté le 28-07-2005 à 11:36:10
C'est sensé être une fenêtre, et comme je l'ai dit ça fonctionne avec la méthode qu'a présenté CosmoSys. Mais ça m'étonne qu'il n'existe pas une autre fonction du genre.
Mais si je suis pas le seul à utiliser DialogBox(), ça me rassure
Concernant CDialog, c'est une classe qui appartient aux MFC (Microsoft Fondation Classes). Bien que ça ait l'air intéressant à utiliser, je préfère l'API Win32.
A ce propos, j'ai trouvé un exemple dans l'aide, qui stipule qu'on peut utiliser une instance du dit CDialog comme fenêtre principale sans inconvénients.
J'en convient que c'est pareil avec DialogBox()...
Je pense que mon problème est résolu
Merci tout le monde !
Marsh Posté le 28-07-2005 à 18:02:56
tu peux utiliser un autre fonction : il s'agit de
CreateDialog() .
A++
Marsh Posté le 28-07-2005 à 18:21:51
adm1n1s7ra7eur a écrit : tu peux utiliser un autre fonction : il s'agit de |
diantre ! mais tu t'arrètes jamais toi
Marsh Posté le 29-07-2005 à 01:26:39
c'est grace à mes connaissances .
vous voyez : ce n'est pas question d'age ou d'experience .
MAIS d'intelligence
Marsh Posté le 29-07-2005 à 22:49:10
Excuser, mais j'ai du appuyer sur une mauvaise touche.
Pour revenir à CreateDialog(), on peut l'utiliser mais il est plus compliquer, contrairement à DialogBox() et compagnie, CreateDialog() n'est pas bloquant et donc il faut gérer soit même la bouche de traitement des messages!
Marsh Posté le 29-07-2005 à 23:30:32
adm1n1s7ra7eur a écrit : c'est grace à mes connaissances . |
tes quoi ?
adm1n1s7ra7eur a écrit : |
de quoi ?
Marsh Posté le 30-07-2005 à 00:22:30
Citation : |
Citation : |
Code :
|
la fonction CreateDialog retourne le handle de la boite de dialog
en cas de succes
Marsh Posté le 30-07-2005 à 01:12:05
adm1n1s7ra7eur a écrit : [
|
et après ? t'as pas l'impression de raconter n'importe quoi là ? arrète donc de dire des conneries sur tous les topics sur lesquels tu passes, je vais finir par t'éjecter !
cosmosys & sausageroll >> pourquoi vous n'utilisez pas la fonction DialogBoxParam(), qui à mon avis est plus adaptée ?
http://msdn.microsoft.com/library/ [...] xparam.asp
Marsh Posté le 30-07-2005 à 01:32:28
Citation : |
mais qui entre nous dit les conneries ?
c'est toi et tes amis !!!
je sais pas pourquoi vous essayer de m'enerver
en plus ,j'ai essaye d'aider CosmoSys ,
CosmoSys : tu doit savoir que DialogBox et CreateDialog sont
presque similaires , la seule difference c'est dans les valeurs
retournés
une derniere fois : fiche moi la paix monsieur Harkonnen S'IL TE
PLAIT .
Marsh Posté le 30-07-2005 à 01:47:09
adm1n1s7ra7eur a écrit : |
S'il t'ennuie tu n'as qu'à le dénoncer à un modérateur
Marsh Posté le 30-07-2005 à 01:51:12
adm1n1s7ra7eur a écrit : |
adm1n1s7ra7eur a écrit : |
on n'essaye pas de t'énerver, mais juste de te faire comprendre que tu es à coté de la plaque dans chaque réponse que tu donnes, et je te le prouve :
adm1n1s7ra7eur a écrit : |
tout faux ! DialogBox() créé une boite de dialogue modale, et possédant sa propre pompe à messages. CreateDialog() créé une boite de dialogue non modale et dont la pompe à messages doit être implémentée manuellement.
adm1n1s7ra7eur a écrit : |
tant que tu raconteras des énormités de ce genre, c'est hors de question que je te fiche la paix
Marsh Posté le 30-07-2005 à 01:52:37
antp a écrit : S'il t'ennuie tu n'as qu'à le dénoncer à un modérateur |
Marsh Posté le 30-07-2005 à 11:39:43
Citation : |
ça n'a ete qu'une petite comparaison qui demontre comment utiliser
CreateDialog() pck notre ami CosmoSys a dit :
Citation : |
a part le cote de la declaraction ,CreateDialog cree une boite de
dialog non modal et DialogBox cree une boite de dialog
modale .pour savoir plus sur les differences , essaie de chercher
sur le NET .
Marsh Posté le 30-07-2005 à 13:24:30
Tu continues encore à te prendre la tête Harko? Quel courrage!
Marsh Posté le 27-07-2005 à 16:56:03
J'ai à réaliser une interface graphique pour un programme. Mais ce que j'aimerais bien faire, c'est créer une fenètre à partir d'un template situé dans un fichier de ressource. J'ai pas envie de déclarer tous mes contrôles et taper leur CreateWindow() à chacun...
Dans le projet Win32 par défaut de Visual C++ j'ai vu qu'il utilisait une fonction DialogBox() pour afficher une fenêtre définie par un template. Cependant, cette fenêtre était fille d'une fenêtre principale crée avec tout le bataclan RegisterClass, etc.
Ce que je voudrais savoir, c'est si c'est possible de créer sa fenêtre principale de la sorte, en se référant à un fichier de ressource pour les contrôles d'interface et leur placement sur la fenêtre. Et si c'est possible, comment ?