IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SDL Discussion :

Perte de sélection sur la fenêtre


Sujet :

SDL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 51
    Points : 32
    Points
    32
    Par défaut Perte de sélection sur la fenêtre
    Bonjour, j'ai un petit problème avec une application SDL.

    Pour me faciliter la vie et comme elle tourne pour le moment sous windows, j'ai utilisé un MessageBox de windows.h.

    Le seul problème, c'est qu'il me fallait le HWND de la fenêtre SDL, j'ai finalement trouvé une méthode (SDL_GetWMInfo) et donc ça fonctionnait bien puisque le MessageBox n'était pas discocié de l'application.

    Mais comme j'ai dis que j'avais un problème, c'est que j'ai quand même quelque chose qui merde. Quand j'utilise l'application (Pas en fullscreen), je peux cliquer dans la zone SDL et dans le pourtour Windows (La croix de femeture, agrandissement, déplacement, ...)

    Si maintenant j'affiche un MessageBox (Avec le HWND de l'application SDL uniquement) et qu'ensuite je clique dans la zone SDL, il m'est impossible de déplacer la fenêtre, de la fermer ou de la réduire, je suis obligé de la resélectionner dans la barre démarer (A noter qu'elle n'est pas grisée comme déselectionnée, mais bien inutilisable, dailleur, la souris sdl reste active plustot que de retrouver le curseur windows par défaut)

    Est-ce que quelqu'un à déjà connu le problème? si oui, connaissez-vous une solution? merci

    Si vous voulez voir ce que ça donne, aller dans l'onglet "mesure" et cliquer sur un des boutons présentant une forme géométrique, ensuite essayer de cliquer dans la zone SDL et de fermer l'application.
    http://grandjean.phpnet.org/test.rar

    PS: si vous êtes cardiaque, ne regardez pas le code source

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 51
    Points : 32
    Points
    32
    Par défaut
    Up

    Sinon, où est-ce que je pourrais me renseigner?

  3. #3
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par atapi
    Up

    Sinon, où est-ce que je pourrais me renseigner?
    Je regarde ton code ce soir,
    Jc

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 51
    Points : 32
    Points
    32
    Par défaut
    Merci, mais je suis désolé, j'ai oublié de mettre la dernière version du code source il n'y a donc rien à voir.

    Je ne suis pas à la maison acutellement, mais j'essayerai de le poster vendredi
    (Voir un condensé qui reprend juste le problème)

    Merci encore à toi et désolé pour mon erreur

  5. #5
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par atapi
    Merci, mais je suis désolé, j'ai oublié de mettre la dernière version du code source il n'y a donc rien à voir.

    Je ne suis pas à la maison acutellement, mais j'essayerai de le poster vendredi
    (Voir un condensé qui reprend juste le problème)

    Merci encore à toi et désolé pour mon erreur
    Bon, le bug est effectivement visible sur mon ordinateur. Je pense que c'est lié au mélange code SDL/code pur Windows. Lorsque ta fenêtre message box se crée, elle prend le contrôle et je pense ne le retourne pas de la bonne facon.

    J'attends de voir le code à jour pour donner mon verdict

    Jc

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 51
    Points : 32
    Points
    32
    Par défaut
    Oups, désolé, j'ai oublié, je poste ce samedi soir, promis

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 51
    Points : 32
    Points
    32
    Par défaut
    Voilà, pour te faciliter un peu la vie, je t'ai mis un condensé de code qui génère l'erreur

    merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    #include <SDL/SDL.h>
    #include <windows.h>
    #include <SDL/SDL_syswm.h>
     
    void* getwin( void )
    {
    #ifdef WIN32
     
             SDL_SysWMinfo wmi;
             SDL_VERSION(&wmi.version);
     
             if(!SDL_GetWMInfo(&wmi)) return NULL;
     
             return wmi.window;
     
    #else
     
             return NULL;
     
    #endif
    }
     
     
     
    int main(int argc, char *argv[])
    {
     
        SDL_Surface *ecran = NULL, *cadre = NULL;
        SDL_Rect posfond;
        SDL_Event event;
        HWND Sdl_window;
        int continuer=1;
     
     
        SDL_Cursor *cursor,*hand,*hand2,*pointeur;
     
        SDL_Init(SDL_INIT_VIDEO);
     
        ecran = SDL_SetVideoMode(630, 700, 32, SDL_HWSURFACE);
        if (ecran == NULL) // Si l'ouverture a échoué, on écrit l'erreur et on arrête
        {
            fprintf(stderr, "Impossible de charger le mode vidéo : %s\nq", SDL_GetError());
            exit(EXIT_FAILURE);
        }
     
        Sdl_window = (HWND) getwin();
     
        posfond.x = 0;
        posfond.y = 0;
     
        cadre = SDL_CreateRGBSurface(SDL_HWSURFACE, 630, 230, 32, 0, 0, 0, 0);
        SDL_FillRect(cadre, NULL, SDL_MapRGB(cadre->format, 240, 241, 237));
     
        SDL_BlitSurface(cadre, NULL, ecran, &posfond);
        SDL_FreeSurface(cadre);
        SDL_Flip(ecran);
     
        while (continuer)
        {
     
     
            SDL_WaitEvent(&event);
            switch(event.type)
            {
                case SDL_QUIT:
                    continuer = 0;
                    break;
                case SDL_MOUSEBUTTONDOWN:
                    if( 0 < event.button.x && event.button.x < 630 && 0 < event.button.y  && 230 > event.button.y) MessageBox(Sdl_window, "La valeur sélectionnée de l'étalon est nulle,\nOn ne peut étalonner avec une valeur nulle", "Erreur de valeur", MB_ICONINFORMATION);
                break;
            }
     
        }
     
     
     
        SDL_Quit();
     
        return EXIT_SUCCESS;
    }

  8. #8
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Alors j'ai le problème sur mon ordi de bureau mais pas sur le portable donc je pense que c'est peut-être dû à la version de SDL installé.

    J'ai utilisé Code::Blocks et j'ai pris le devpak SDL.

    Jc

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 51
    Points : 32
    Points
    32
    Par défaut
    C'est peut etre la solution, j'utilise aussi code::blocks et j'aimerais savoir où tu as trouvé le pack avec lequel le programme ne bug pas.

    merci

  10. #10
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par atapi
    C'est peut etre la solution, j'utilise aussi code::blocks et j'aimerais savoir où tu as trouvé le pack avec lequel le programme ne bug pas.

    merci
    Dans devpaks.org Community Devpaks, dans le groupe SDL j'ai installé libSDL.

    C'est tout.

    Jc

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 51
    Points : 32
    Points
    32
    Par défaut
    J'ai peut etre fait une fausse manipulation, mais ça ne marche toujours pas
    Tu utilise quel SDL.dll, est-ce le même sur les deux machines?

    merci

  12. #12
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par atapi
    J'ai peut etre fait une fausse manipulation, mais ça ne marche toujours pas
    Tu utilise quel SDL.dll, est-ce le même sur les deux machines?

    merci
    Je ne sais pas, je te tiens au courant demain. Je ne suis pas chez moi...

    Jc

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 51
    Points : 32
    Points
    32
    Par défaut
    Ok, merci.

    Sinon, pour être sure que je n'ai pas fait une fausse manip, j'ai fais comme ça pour mettre le pack

    Plugins >> DevC++ Devpacks updater/installe

    Updater Server >> devpacks.org Community Devpacks
    Categories >> SDL
    Devpacks in categorie >> libsdl

  14. #14
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 672
    Points : 5 509
    Points
    5 509
    Par défaut
    Tu as essayé en installant tout simplement la dernière version de SDL ?
    Si c'est un problème de version, tu dois pouvoir regler ça ainsi

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 51
    Points : 32
    Points
    32
    Par défaut
    Oui, justement, c'est la dernière version que j'ai : SDL 1.2.11

    Parcontre, tu disais avoir le bug sur ton pc, mais pas sur le portable, en fonction du compilateur, es-tu sure que ça vienne de la version de sdl installée et non du pc utilisé? (Enfin, est-ce que tu as essayé les versions compilées les autres ordis)

  16. #16
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 672
    Points : 5 509
    Points
    5 509
    Par défaut
    Bon je viens de tester chez moi sous Code::Blocks, je n'ai pas de problèmes.

    Ma version de SDL est 1.2.8.
    Les options de compilation sont celles de base.

    Desolé, je crois que je peux pas aider là ...

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 51
    Points : 32
    Points
    32
    Par défaut
    Je pourrais avoir tes .lib (.a) et le sdl.dll de ta version pour essayer?

    Est-ce que tu as le problèmes avec mon appli en téléchargement aussi, pour voir si ça vient ou non du pc? merci

  18. #18
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 672
    Points : 5 509
    Points
    5 509
    Par défaut
    - Edit -

    Je viens de tester ton appli, ça marche super

    J'ai essayer aussi en touchant un peu à tout et à chaque fois en essayant de bouger la fenêtre... pas de problèmes

    J'ai tester avec ton executable, pas de problèmes.
    Ensuite j'ai recompiler dans un dossier séparé, le nouvel executable ne pose pas de problèmes non plus.

    Voici le lien pour ce que tu as demandé :
    http://lokamhal.free.fr/ressources/sdl_atapi.zip

    Au niveau du code, pour la compilation, ajoute au moins un default : break; dans tes switch (selon les options de compilation, ça peu être assez chiant le nombre de warning juste à cause de ça...)

  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 51
    Points : 32
    Points
    32
    Par défaut
    Ok, merci, je vais essayer ça, mais il y a des chances que ça vienne carrément du pc et non de la version d'sdl

    [edit] apparement, je ne peux pas compiler avec ce que tu m'as donné, ça doit venir du reste de SDL

    Tu pourrais me passer l'applic sdl que tu as compilée et qui fonctionne chez toi pour que je teste ça chez moi, merci

  20. #20
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 672
    Points : 5 509
    Points
    5 509
    Par défaut
    ok, mais je pense aussi que ça doit venir du pc vu que l'executable avec lequel tu avais des problèmes fonctionne bien chez moi.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Comment crée une sélection sur une fenêtre
    Par Dayvid dans le forum PureBasic
    Réponses: 1
    Dernier message: 24/02/2014, 12h16
  2. Outlook et perte du focus sur une fenêtre
    Par Abac_Angelique dans le forum API, COM et SDKs
    Réponses: 0
    Dernier message: 16/07/2013, 18h28
  3. Perte de focus sur fenêtre TopLevel
    Par Nainpoleon dans le forum Tkinter
    Réponses: 4
    Dernier message: 11/03/2013, 12h40
  4. Perte de focus sur une fenêtre modale
    Par yonpo dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 07/01/2011, 14h32
  5. Rendre le curseur invisible sur une fenêtre donnée
    Par Meuhmeuh dans le forum C++Builder
    Réponses: 3
    Dernier message: 22/11/2002, 12h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo