C/C++ SOUS WINDOWS TUTORIAL 3 : CREATION ET AFFICHAGE DE CONTRÔLES

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 19 janv. 2006 à 23:34
hugues7E5 Messages postés 12 Date d'inscription jeudi 30 novembre 2000 Statut Membre Dernière intervention 29 janvier 2006 - 29 janv. 2006 à 20:54
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/35658-c-c-sous-windows-tutorial-3-creation-et-affichage-de-controles

hugues7E5 Messages postés 12 Date d'inscription jeudi 30 novembre 2000 Statut Membre Dernière intervention 29 janvier 2006
29 janv. 2006 à 20:54
Toujours interressant, mais si il y a de si grosses erreurs comme le dit BruNews, il serait bon de les corriger... je vais essayer de comprendre par moi-meme le WM_CREATE!

continue dans es tuto, mais avec plus d'éxactitudes!

merci encore
wxccxw Messages postés 755 Date d'inscription samedi 15 mai 2004 Statut Membre Dernière intervention 30 janvier 2011
23 janv. 2006 à 16:45
j'aime bcp mais excuse moi pourquoi ne pas avoir poster dans Tutoriaux sur le site ???
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
21 janv. 2006 à 20:46
bool stop est seulement le reste d'une modif pas encore nettoyée, ne sert à rien.
DefWindowProc sert à repasser au système tous les messages que l'on ne traite pas spécifiquement, c'est la procédure par défaut pour les fenêtres créées par CreateWindow[Ex].
katsankat Messages postés 571 Date d'inscription vendredi 30 décembre 2005 Statut Membre Dernière intervention 12 juillet 2012 3
21 janv. 2006 à 20:39
En quelle langue faut-il que je demande si le bool stop est obligatoire et à quoi sert returndefwindproc.
cs_LaPatoshe Messages postés 53 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 19 décembre 2009
20 janv. 2006 à 19:58
merci Brunews pour ces précisions.
J'ai placé le tuto dans la catégorie Code, c'est vrai que sa place est dans les tutoriaux. C'est une mauvaise habitude que je vais tenter de corriger.
A+
katsankat Messages postés 571 Date d'inscription vendredi 30 décembre 2005 Statut Membre Dernière intervention 12 juillet 2012 3
20 janv. 2006 à 18:25
Pourquoi ne pas le poster en tant que tutorial plutôt que code?

Autre question à quoi sert le bool stop?

La dernière ligne: return DefWindowProc(hWnd, uMsg, wParam, lParam);
ne retourne nulle part.
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
20 janv. 2006 à 09:55
Une fenêtre n'a pas forcément la durée de vie du processus, on en crée au fur et à mesure des besoins et on les détruit quand ne servent plus. WM_CREATE sert donc à initialiser tout ce dont la fenêtre a besoin.
Le hdc dans WM_PAINT est obtenu par BeginPaint(), GetWindowDC() n'a strictement rien à faire dans cet event, ne le remplacer par rien du tout.
cs_LaPatoshe Messages postés 53 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 19 décembre 2009
20 janv. 2006 à 00:45
_ Le fait de créer les contrôles dans WM_CREATE est mieux à quel niveau ?
_ Si j'enlève GetWindowDC, par quoi puis je le remplacer ?
Pour ce qui est de WM_COMMAND, je ne me sers pas des ID, je n'en ai jamais vraiment eu besoin, c'est peut être un tort, mais bon.
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 janv. 2006 à 23:34
Encore ce GetWindowDC !!! Vire le, surtout sans ReleaseDC c'est une calamité.
Dans WM_COMMAND il est d'usage de faire un switch sur wParam pour déterminer le type de commande, encore faudrait-il que tu attribues un ID aux controles.
Les "feuilles" c'est chez VB, en Windowsien natif tout est fenêtre mais avec un ordre hiérarchique.
Une fenêtre devrait créer ses controles 'enfant' dans WM_CREATE et non dans le WinMain du prog.
Faudrait regrouper avec ta source précédente mais surtout bien étudier Petzold avant, il y a trop de choses à revoir pour laisser cela ainsi.
Rejoignez-nous