APPLICATION BASÉE BOITE DE DIALOGUE SANS RESSOURCES

scolinks Messages postés 69 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 19 octobre 2005 - 19 sept. 2004 à 08:05
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 - 28 nov. 2006 à 00:22
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/26264-application-basee-boite-de-dialogue-sans-ressources

racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
28 nov. 2006 à 00:22
Tu peux t'inspirer de mon code sur la couleur dans les controles:
http://www.cppfrance.com/code.aspx?ID=27889
cs_Omeya Messages postés 28 Date d'inscription dimanche 4 mai 2003 Statut Membre Dernière intervention 10 août 2006
27 nov. 2006 à 23:59
Merci, je l'avais complètement oublié lol! En fait, je n'avais pas remarqué que le WS_TABSTOP n'était pas spécifié dans ton code.

Je cherche aussi un moyen de changer la couleur du texte des boutons. Si par hasard tu pouvais donner un bout de code, ce serait très sympa :)
J'ai déjà un bout de code, perso, mais il est pas très propre. Je te le posterai demain soir si je peux tout en sachant que ta version pourrait être nettement meilleure.
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
27 nov. 2006 à 23:30
Salut,
Il suffit d'ajouter le style WS_TABSTOP au controle.
cs_Omeya Messages postés 28 Date d'inscription dimanche 4 mai 2003 Statut Membre Dernière intervention 10 août 2006
27 nov. 2006 à 13:42
Salut,

Comment fait-on pour passer d'un contrôle à un autre avec la touche TAB? Ca ne marche pas dans cette source :(
Sinon, très bonne source. Ca mérite un bon 10 :)
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
11 avril 2006 à 19:40
RACPP ... tu est mon sauveur. j'ai chercher PARTOUT après un exemple claire pour crée une dialogbox SANS RESSOURCE. C'est source est une aide précieuse pour moi. Et continue a nier les ressource :D je suis de tous coeur avec toi. Me too je veu pas utiliser les ressources ( en mm temps j'ai pas le choix , elles bug, mais je suis pas mécontent).

Encore merci pour cette source.
cs_Xaviou Messages postés 154 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 2 octobre 2009
13 janv. 2005 à 23:13
ça m'a l'air bien tout ça !...

c'est peut-être la solution pour mettre des 'resources' de style dialog dans une lib statique (car si mes souvenirs sont exacts, il n'est pas possible de placer des ressources proprement dites dans une telle librairie)
cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
28 déc. 2004 à 01:42
Un seul mot : Génial !
MasterShadows Messages postés 268 Date d'inscription lundi 1 mars 2004 Statut Membre Dernière intervention 19 avril 2012 12
29 sept. 2004 à 12:29
Merci bien Magic_Nono et racpp , on va aller étudier tout ca et je réécrirais totelement le prog...
D'ici demain vous aurez la version du programme dont j'ai parlé pour vous faire une idée du soft que je prépare.
Allez @+
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
28 sept. 2004 à 16:59
alors, inscrit chaque controle dans une fenetre différentes, C bcp plus pratique...

Je met à jour MP sur le site ftp donné en lien ds la page de MétaProg
ça te donnera une idée de gestion d'onglets...

très facile à gérer et à modifier en étant totalement i ndépendantes les unes des autres...

++
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
28 sept. 2004 à 16:15
MasterShadows > Mon programme des dix onglets est assez long et complexe car il gère une base de données elle aussi complexe. Je vais très bienôt poster un source plus clair, simple et surtout focalisé sur la création d'onglets 100% API (sans ressources). En attendant, voici des sources sur les onglets dans une boite de dialogue créés avec l'éditeur de ressources (sans MFC):
http://www.cppfrance.com/code.aspx?ID=16835
http://www.cppfrance.com/code.aspx?ID=20182
MasterShadows Messages postés 268 Date d'inscription lundi 1 mars 2004 Statut Membre Dernière intervention 19 avril 2012 12
28 sept. 2004 à 13:08
racpp > Ton idée d'onglet a du bon, je dirais même qu'elle est excellente car cela me permettrait d'avoir plus de place pour le tracer de graphes.
Cependant, cela ne fais pas excessivement longtemps que je programme sans les MFC, il me faudrait donc que tu me donne le code source du programme de tes dix onglets pour avoir un exemple de codification des onglets.
Quand au code source je la posterais cette semaine.
Mais de toute façon, elle subira une refonte totale...
Allez @+
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
27 sept. 2004 à 15:47
MasterShadows > L'utilisation de beaucoup de boites de dialogues dans une application n'est pas toujours très pratique. Personnellement, dans un programme comme le tien, je préfère utiliser des onglets (Tab Control). Cela permet de supporter un grand nombre de contrôles (boutons, statics, edits, etc...) dans une même boite de dialogue. En cliquant sur l'onglet voulu (calculatrice, rapport, graph etc...) on montre les contrôles voulus et on cache les autres. J'avais fait une application contenant 10 onglets contenant chacun pas moins de 15 contrôles. Ca fonctionne sans le moindre problème. En attendant de voir ton code source, j'espère que la solution des onglets t'est convenable.
MasterShadows Messages postés 268 Date d'inscription lundi 1 mars 2004 Statut Membre Dernière intervention 19 avril 2012 12
27 sept. 2004 à 08:20
racpp >> Ben, en fait je suis en train d'écrire un programme qui permettrait à terme de tracer des fonctions polynomiales, des rendements et d'autres styles de courbes. Pour cela il me fallait créer une boite dialogue principale, puis une boite dialogue calculatrice, une boite dialogue de rapport, une bdd de graphe et d'autres dans ce style (6 boites de dialogue au total).
Cependant je les avait créer mais il m'était impossible de les mettre en WS_OVERLAPPEDWINDOW sinon bonjour les bugs, car j'aurais aimé faire comme les activations/désactivations de fenêtre (style vc++ 6).
Mais pour plus de clarté je posterais la source bien qu'elle ne soit (et de loin) pas finie, pour que tu vois ce que je voudrais
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
24 sept. 2004 à 15:16
j'ai posté un msg sur le forum il y a qq tps, le but est de faire un formulaire dynamique, je m'y colle depuis un certain tps, & vive le Petz

si qqn ve donner un coup de pouce...

++
Nono.
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
22 sept. 2004 à 18:11
Merci beaucoup chers amis,
Ca fait toujours plaisir d'entendre quelqu'un qui apprécie ce qu'on fait. Ca m'encourage à penser à d'autres trouvailles à partager.
A très bientot.
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
21 sept. 2004 à 20:38
bravo pr le code, tres instructif, 10/10 sans complexe, car meme si ce code est tres simple a comprendre, je savais pas comment faire ce genre de choses, et ca ferait presque un bon tuto.
c'est vrai que je suis d'accord que l'editeur de ressources te donne limpression de pas programmer et de faire completement autre chose, mais y'a quand meme parfois un gain de temps assez significatifs (contre une perte de qualité c'est vrai...moins de précisions ds le graphisme, meme si c'est pas forcément important, etc.....)
en tous les cas, tres pratique, alors je dis bravo et merci
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
20 sept. 2004 à 22:45
vecchio56 > Pour créer une boite de dialogue comme interface d'une application, il y'a deux façons. DialogBox() et DialogBoxIndirect(). DialogBox crée la boite selon les paramètres enregistrés dans l'EXE comme ressource. DialogBoxIndirect fait la même chose mais en cherchant ces paramètres dans une zone de la mémoire. Ce qui nous permet de définir les paramètres pendant l'exécution de l'application avant même l'affichage de la boite. Bref, grâce à cette méthode, on maitrise mieux notre boite. Entre une boite de dialogue et une fenêtre normale il y'a beaucoup de différences. Avec une boite de dialogue, on a juste besoin d'allouer un peu de mémoire pour la dialog template, définir les propriétés de la boite et enfin la lancer. Pour la fenêtre, c'est autre chose. Il faudra définir tous les membres de la classe. Regarde bien le source de monsieur Arnotic, il a dû définir des membres inutiles comme l'icone, le curseur, la couleur de fond, le nom de la classe etc... il a dû faire appel à des fonctions comme LoadIcon(), LoadCursor(), RegisterClassEx() ShowWindow() UpdateWindow(). Pour gérer les messages il a dû employer les fonctions LoadAccelerators(), GetMessage(), TranslateAccelerator(), TranslateMessage(), DispatchMessage(). C'est toujours ainsi avec les fenêtres normales. Alors qu'on n'a pas besoin de tout cela avec une boite de dialogue. Création simple et gestion des messages autonome. Si tu préfères utiliser l'éditeur de ressources c'est ton choix. Franchement, et je ne suis pas le seul à le penser, quand je travaille avec l'éditeur de ressources, j'ai l'impression d'être en train de faire autre chose que la programmation. C'est frustrant et limite beaucoup la maitrise de la programmation de l'application.
A+
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
20 sept. 2004 à 18:01
L'avantage des dialog est pourtant l'utilisation de l'éditeur des ressources... Sinon c'est quasiment pareil que de créer une fenêtre normale, à l'exception qu'on n'enregistre pas de classe...
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
20 sept. 2004 à 16:47
MasterShadows > Dans mon source, la boite de dialogue est le support principal de l'application. A partir de la procédure de cette boite principale, et de ses événements, tu peux créer autant d'autres boites que tu veux et les afficher à la fois. N'oublie surtout pas d'implémenter une procédure pour chacune d'elles afin de bien gérer les messages. Il faut rappeler aussi que la fonction DialogBoxIndirect() est bloquante. Le programme appelant attend que la boite soit fermée.
Tu peux donner d'autres précisions? Car je me demande à quoi peut servir d'afficher toutes les boites à la fois.
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
20 sept. 2004 à 10:10
oui désolé!
MasterShadows Messages postés 268 Date d'inscription lundi 1 mars 2004 Statut Membre Dernière intervention 19 avril 2012 12
20 sept. 2004 à 08:55
10 / 10 . Franchement bien.
Cependant, question : peut on programmer plusieurs boîtes de dialogue de ce type et les faire afficher en même temps ???
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
19 sept. 2004 à 21:03
vecchio56 > En tous cas merci pour le rappel. Je suis sûr que tu n'avais pas pris le temps de comparer les deux sources.
A+
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
19 sept. 2004 à 20:08
vecchio56 > Oui mais c'est pas du tout la même chose. La méthode utilisée est tout à fait différente. Monsieur Arnotic a fait appel à la fonction CreateWindowEx() pour créer une fenêtre normale ayant l'apparence d'une boite de dialogue. Ce qui présente quelques inconvénients. Déjà la présence de l'icone à côté du nom prouve que ce n'est pas une vraie boite de dialogue. Dans mon source, j'utilise la fonction DialogBoxIndirect() pour créer une vraie boite de dialogue, plus facile à réaliser et surtout plus souple dans son fonctionnement.
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
19 sept. 2004 à 18:02
Deja fait par monsieur Arnotic:
http://www.cppfrance.com/code.aspx?id=25149
scolinks Messages postés 69 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 19 octobre 2005 6
19 sept. 2004 à 08:05
10 sur 10... Tres pratique...
Rejoignez-nous