begin process at 2012 05 30 19:53:44
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

Win Api en C :Un curseur trop lourd ? Pourquoi ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Win Api en C :Un curseur trop lourd ? Pourquoi ?

vendredi 25 août 2006 à 07:55:29 | Win Api en C :Un curseur trop lourd ? Pourquoi ?

acryline

Bonjour,

    Je suis toujours dans ma petite application (voir un petit peu plus bas) et tout fonctionne bien, même quand je change de curseur. En général les curseurs que j'utilise font entre 1 et 7ko. Mais je viens de tester un curseur animé (ani) de 33 ko. Et là tout plante. Mon programme fonctionne un petit moment, et au fur et à mesure des sélections de boutons, menus, il se ralentit puis plante joyeusement....

Je pense à une surcharge de la mémoire c'est sûr, mais pourquoi avec ce surseur et pas avec les autres ?
Pour info, j'ai veillé à bien tout supprimer les HDC, HWND etc .. dont je n'avais plus besoin.
Votre avis ? Merci !
vendredi 25 août 2006 à 08:24:44 | Re : Win Api en C :Un curseur trop lourd ? Pourquoi ?

acryline

Bon en fait ça me fait ça avec tous les curseurs mais avec les plus légers ça mets plus de temps...

Il doit y avoir une perte de mémoire qq part maizou ?? Le programme est très fluide au début et à force l'affichage prend de plus en plus de temps et au final ça plante.

Je viens d'utiliser Destroy curseur quand je change de curseur ce que je n'avais pas fait mais ça ne change rien .... si vous avez un conseil il est le bienvenu... sinon suite au prochain épisode je cherche la fuite !
vendredi 25 août 2006 à 09:52:38 | Re : Win Api en C :Un curseur trop lourd ? Pourquoi ?

acryline

Bon j'ai mis les ZeroMemory partout ça n'a servit à rien...
J'ai regardé dans le gestionnaire des tâches de Windows.. Quand je démarre l'exécutable, il n'apparaît pas ans les appications mais dans les processus et la mémoire utilisée ne dépasse jamais 2200ko. (Le processeur monte à 40).
Mais toujours et encore si je clique plus de 40 fois sur un bouton, je perds ma souris (que pour l'application, heureusement ), la vitesse d'affichage augmente et enfin ça plante...



vendredi 25 août 2006 à 13:49:51 | Re : Win Api en C :Un curseur trop lourd ? Pourquoi ?

acryline

Bon voici mon code  ici
Bon c'est pas joli comme ça devrait mais je 'nai pas envoyé les images. On peut mettre celles qu'on veut en fait mais il faut respecter les dossiers du début dans main.c et prendre les bonne extensions (cur, ani et bmp)
Voila si qq'un pouvait me répondre ça serait sympa.

Merci

vendredi 25 août 2006 à 16:07:51 | Re : Win Api en C :Un curseur trop lourd ? Pourquoi ?

acryline

Réponse acceptée !
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 :

        case WM_CHANGERCURSEUR:
        //Modifier le curseur.des boutons
       for (i=0;i<70;i++)
{
       SetClassLong(hBouton[i], //handle d'un bouton
                     GCL_HCURSOR,
                    (long int)LoadCursorFromFile (curseur));
}
        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 type="c">

     case WM_CHANGERCURSEUR:
        //Modifier le curseur.des boutons
        SetClassLong(hBouton[0], //handle d'un bouton
                     GCL_HCURSOR,
                    (long int)LoadCursorFromFile (curseur));
        return 0;
</code>

Je ne sais pas pourquoi mais ça marche !
vendredi 25 août 2006 à 17:56:30 | Re : Win Api en C :Un curseur trop lourd ? Pourquoi ?

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
La classe BUTTON est unique donc normal qu'il en soit ainsi.

Faut aussi libérer la mémoire.
HCURSOR hAni;
....
if(hAni) {DestroyCursor(hAni); hAni = NULL;}
hAni = LoadCursorFromFile(curseur);
SetClassLong(hBouton[0], GCL_HCURSOR, (long) hAni);

ciao...
BruNews, MVP VC++
vendredi 25 août 2006 à 18:12:47 | Re : Win Api en C :Un curseur trop lourd ? Pourquoi ?

acryline

Oui mais on y pense pas tout de suite malheureusement .



Cette discussion est classée dans : curseur, api, trop, win, lourd


Répondre à ce message

Sujets en rapport avec ce message

api winsock [ par palini ] Je ne connais pas l'API sous win NT4 qui permet de connaitrela configuration totale de votre machine au niveau du réseau(la commande ipconfig /all)J'a API OpenSSL (doc?) [ par neoTHGLF ] Bonjour, Je cherche désespérément depuis plusieurs mois de la documentation en Français de préférence sur la manipulation de l'API openSSL. Une docum C++ : trop lourd ? [ par guiguikun ] Cela fait quelques mois que je suis passé du C pur et dur au C++.Plus je programme objet et plus je me pose les mêmes questions...Ok c'est bien pratiq filtrage sur une Edit box - API Win 32 [ par chrcharles ] Bonjour,Je cherche comment filtrer les caratères frappés dans une Edit box. Cette Edit box doit recevoir que des chiffres compris entre par exemple -1 MFC / API Win 32 / Open Gl... [ par bubbless ] Bonjour à tous !Programmant en C++, je suis actuellement devant un dilemme : quel langage choisir pour l'interface ? J'ai programmé un peu l'année der Win API - Tree Control - Comment effacer ? [ par k_n1 ] Salut, j'ai une question qui va surement vous paraitre relativement simple mais sur laquelle je bloque, sans reussir a trouver de reponse ni ici ni s Afficher une image dans une application Win-api avec Dev-cpp [ par by_rabbit_08 ] Bonjour! J'aurais voulu savoir si quelqu'uns pouvait m'aider pour afficher simplement une image dans une application Win-api avec Dev-cpp. Serait-il p API win Bouton dans Fenetre [ par THEwarrior333 ] Bonsoir,je debute en programmation API windows et je ne trouve pas comment insérer un bouton dans ma fenetre principale (je dis bien fenetre, pas boit exitwindows api [ par T_Mehdi ] salt a tous ;l api exitwindows marche tres bien sous win 98 mais pas sous win xp j'ai essayer de la remplacer par exitwindowsex  mais ca marche pas au ressources fichier texte API Win [ par THEwarrior333 ] Bonjour,sous Visual 6 en API win:je cherche à inclure un fichier texte dans mes resources pour ensuite l'inclure dans un edit box.comment on fait ca ?


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,359 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales