Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2350 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Win api : programme qui plante à cause des images

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Win api : programme qui plante à cause des images

n°1431465
acryline
Posté le 25-08-2006 à 15:17:51  profilanswer
 

Bonjour,  
 
 voilà je me lance dans l'api win32 et j'ai fait un petit programme dont voici le code en lien  ici.
 
Tout fonctionne mais au fur et à mesure que j'utilise les boutons, le programme semble s'essouffler devenir moins rapide, je perds l'image du curseur.
J'ai testé le programme sans image, tout va bien. Le programme ne s'essoufle pas.
 
Si vous voulez vous pouvez tester avec les images. Voici l'executable + dossier images  :ici.
 
La question : qu'est ce qui ne marche pas ?  
Une autre : si vous n'avez pas le temps , pourriez vous au moins me donner une piste ? Qu'est ce que ça vous évoque ? Quelles genres d'erreurs provoque ça ?
 
 
Merci pour vos réponses !  :)  

mood
Publicité
Posté le 25-08-2006 à 15:17:51  profilanswer
 

n°1431492
Trap D
Posté le 25-08-2006 à 15:44:51  profilanswer
 

Tu dois oublier de libérer ds ressources pour l'affichage des images, je n'ai pas lu ton source mais il doit manquer des ReleaseDC et autres DeleteObject

n°1431516
acryline
Posté le 25-08-2006 à 16:17:01  profilanswer
 

Je sais j'avais passé et rererepassé mon code pour voir si je n'avais pas oublié de le faire quelque part. Mais en fait c'était une boucle !!
 
J'ai trouvé ce qui ne marchait pas si ça interesse quelqu'un ?
 
J'ai un tableau de 70 boutons et comme j'avais modifié le curseur de l'application il fallait que je le fasse aussi de façon séparée pour les autres fénêtres donc pour les boutons et j'ai ecrit ceci :

Code :
  1. case WM_CHANGERCURSEUR:
  2.         //Modifier le curseur.des boutons
  3.        for (i=0;i<70;i++)
  4. {
  5.        SetClassLong(hBouton[i], //handle d'un bouton
  6.                      GCL_HCURSOR,
  7.                     (long int)LoadCursorFromFile (curseur));
  8. }
  9.         return 0;


 
 
 
Donc chaque fois qu'il fallait redessiner les boutons le programme passait sur la boucle... et c'etait fréquent !
 
J'ai essayé de ne définir que le bouton 0 et miracle ça marche le curseur s'affiche aussi sur tous les autres boutons.
 
ce qui donne :  
 
 
 

Code :
  1. case WM_CHANGERCURSEUR:
  2.         //Modifier le curseur.des boutons
  3.         SetClassLong(hBouton[0], //handle d'un bouton
  4.                      GCL_HCURSOR,
  5.                     (long int)LoadCursorFromFile (curseur));
  6.         return 0;


 
 
Je ne sais pas pourquoi mais ça marche !   :)

n°1431523
olivthill
Posté le 25-08-2006 à 16:30:00  profilanswer
 

Pour infos :
La raison vient du fait que SetClassLong() concerne une classe (pas une classe C++, mais une classe Windows, c'est-à-dire un style de fenêtre), comme son nom l'indique.
Or tous les boutons font partie de la même classe.
Il existe un curseur (pointeur de la souris) par défaut par classe.
 :)

n°1431531
acryline
Posté le 25-08-2006 à 16:44:46  profilanswer
 

Bon après reflexion j'y ai pensé !! Ah lala qu'est ce qu'on peut perdre comme temps pour des détails ! pffffffff
 :pt1cable:  
 
Et pour le handle du bouton.... on peut mettre n'importe lequel ?Pourquoi on ne mettrait pas un identifiant de la classe alors plutot que le handle d'une fenetre particulière ?
 

n°1431616
Emmanuel D​elahaye
C is a sharp tool
Posté le 25-08-2006 à 20:46:01  profilanswer
 

acryline a écrit :

Bon après reflexion j'y ai pensé !! Ah lala qu'est ce qu'on peut perdre comme temps pour des détails ! pffffffff
 :pt1cable:  
 
Et pour le handle du bouton.... on peut mettre n'importe lequel ?Pourquoi on ne mettrait pas un identifiant de la classe alors plutot que le handle d'une fenetre particulière ?


Pourquoi tu n'utilises pas gtk+2 ?
 
http://www.gtk-fr.org/wakka.php?wiki=PageAccueil
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1431648
acryline
Posté le 25-08-2006 à 22:53:17  profilanswer
 

Citation :


Pourquoi tu n'utilises pas gtk+2 ?
 
http://www.gtk-fr.org/wakka.php?wiki=PageAccueil


 
ET bien quand on débute on est un peu noyé dans toutes ces bibliothèques. Je me suis dit que gtk serait le mieux, c'est vers gtk queje me suis tournée en premier mais j'ai eu un mal fou à l'installer....(très très débutante à l'époque).
Alors que pour Win Api c'était très simple... rien à faire ... :pt1cable:  
 
Mais pas pour longtemps !  :heink:  
Effectivement c'est pas mal hardu et en plus je ne suis pas sure de continuer (pas portable, pas rapide pour coder)??
Bon je fini mon application et je vois.
 
Merci pour le lien en tout cas. Il me semble pas mal fait pour débuter.

n°1432177
marctes
Posté le 27-08-2006 à 18:45:53  profilanswer
 

Trap D a écrit :


Je ne sais pas pourquoi mais ça marche !   :)


 
Commence par lire le Petzold, car ne pas savoir ça est gravissime, vu que c'est une notion de base.

n°1432310
acryline
Posté le 28-08-2006 à 07:27:02  profilanswer
 

Gravissime, le mot est un peu lourd  je trouve, génant peut être  ?  :whistle:  
 
Gravissime pour moi c'est un cancer, une catastrophe naturelle.. Ok j'ai compris je l' ferai pus, promis..
Pas taper hein ?  
 
Et le principal : je SAIS pourquoi ça marche !   Alors heureux ?  :D


Message édité par acryline le 28-08-2006 à 07:33:50
n°1432443
Trap D
Posté le 28-08-2006 à 11:58:15  profilanswer
 

Citation :

Je ne sais pas pourquoi mais ça marche  ! :)


J'ai écrit ça moi ?  :pt1cable:

mood
Publicité
Posté le 28-08-2006 à 11:58:15  profilanswer
 

n°1432486
acryline
Posté le 28-08-2006 à 13:50:33  profilanswer
 

Y'a eu méprise  !  ;)
C'était moi je l'avoue .  :sweat: paraît que c'est pas bien  !  :non:


Message édité par acryline le 28-08-2006 à 13:51:50

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Win api : programme qui plante à cause des images

 

Sujets relatifs
Chemin des imagesComment organiser les images dans un package ?
Utiliser BASIC sous Win XP ?EJB select plante avec ORA constraint violation
Programme pour trie sur Excel...HELP!!![VC++] Problème de distibution avec un programme MFC
programme bloqué quand j'utilise beep() (faire bipper le hp interne)[php] Erreur boolean : MySQL en cause ?
[Perl][emacs] Liste des fonctions du programme dans le menuCréer un programme s'éxécutant sans OS ?
Plus de sujets relatifs à : Win api : programme qui plante à cause des images


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR