Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : perte de device avec dinput [ Archives / DirectX ] (chamoine)

mardi 31 mai 2005 à 14:35:26 | perte de device avec dinput

chamoine

J'ai un soucis lorsque j'agrandi mon application après l'avoir réduite.
Je suis obligé de killer celle-ci....
J'arrive parfaite a récupérer mes surfaces et le clavier mais pas  la souris sa bloque.

Voici mon code servant a géré la souris:
// On remet a zero les boutons
    m_bButton0 = m_bButton1 = FALSE;

    DIDEVICEOBJECTDATA data;
    BOOL bTermine = FALSE;
    DWORD dwNumElements = 1;
   
    // Nettoyage de la structure DIDEVICEOBJECTDATA
    memset(&data, 0, sizeof(DIDEVICEOBJECTDATA));
   
    // Récupération des infos sur la souris
    while(!bTermine)
    {
        // Pointeur pour gérer la souris
        if(m_dSouris->GetDeviceData(sizeof(DIDEVICEOBJECTDATA), &data,
            &dwNumElements, 0) == DIERR_INPUTLOST)
        {
            if(m_dSouris->Acquire() == DI_OK)
                m_dSouris->GetDeviceData(sizeof(DIDEVICEOBJECTDATA), &data, &dwNumElements, 0);
        }
       
        // Calcul la nouvelle position et vérifie si un bouton a été cliqué
        switch(data.dwOfs)
        {
        case DIMOFS_X:
            m_iCurseurXPos += data.dwData;
            break;

        case DIMOFS_Y:
            m_iCurseurYPos += data.dwData;
            break;
        // bouton gauche
        case DIMOFS_BUTTON0:
            // touche enfoncée
            if (data.dwData & 0x80)
                m_bButton0 = TRUE;
            break;
        // bouton droite
        case DIMOFS_BUTTON1:
            // touche enfoncée
            if (data.dwData & 0x80)
                m_bButton1 = TRUE;
            break;
        }
   
        // On a fini :-)
        if (dwNumElements == 0)
            bTermine = TRUE;
   }

Si vous avez unr idée se n'est pas de refut

mardi 31 mai 2005 à 16:03:29 | Re : perte de device avec dinput

chamoine

Réponse acceptée !
Enfaite j'ai trouvé en ajoutant une variable servant de compteur évitant un appel directe du device de la souris

Donc si quelqu'un a le même problème voila ma soluce:
on déclare la variable int iRun = 0;

dans la boucle du jeu:
while(TRUE)
{
    ....
    if(iRun++ >= 2)
        GestionSouris();
    ....
}

dans la fonction traitant les messages de windows:
switch(msg)
    {
    case WM_ACTIVATE:
        // Activate/déactivate le jeu
      if (wParam == WA_INACTIVE)
      {
        if(m_pInput != NULL)
            m_pInput->InputDeactive();
        SetEtat(FALSE);
      }
      else
      {
        if(m_pInput != NULL)
            m_pInput->InputActive();
        iRun = 0;
        SetEtat(TRUE);
      }
      return 0;
....

voili voilou



Cette discussion est classé dans : data, case, souris, dideviceobjectdata, dwnumelements


Répondre à ce message

Sujets en rapport avec ce message

DirectInput ????? [ par Galmiza ] C'est hallucinant mais c'est comme ca, la variable xMousePos ne fonctionne pas (xMousePos semble osciller tres aleatoirement autour de 0 quand je bou Configuration souris SDL [ par darkane78 ] Bonjour,J'aimerais bien réalisé un jeu de dame, seulement je suis bloqué au niveau du configuration de la souris.Je voudrais pouvoir cliquer sur un pi Enregistrement de chaque valeur dans un tableau [ par fashionhacker ] Bonsoir, Mon pseudo est pitoyable, en effet j'ai cré le compte il y a longtemps. :) Je voudrais savoir s'il est possible et comment enregistrer chaqu Lecture Data Runs - système NTFS [ par mzhunix ] Bonjour,J'aimerais savoir comment me débrouiller avec les data runs récupérés dans un attribut non résident de la mft.En fait, je voudrais les données problème de template sous linux (qui par contre compile et tourne sous windows !!!!) [ par orus35 ] Bonjour, Peut-être que vous allez pouvoir m'éviter de me prendre la tête pdt 107 ans, mon code compile et tourne bien sous 2009. par contre sous linux retranscription fichier imprimante [ par KON666 ] Bonjour,J'ai un appareil de mesure actuellement relié sur une imprimante et au lieu de l'imprimante je l'ai relié à mon pc via le port parallèle et j' Keylogger probleme code [ par rebelattack ] bonjour,J'ai un probleme lorsque je veux compiler ce code. Je suis débutant, mais j'ai réunis plusieur code et çà doit etre la le probleme. donc lorsq Récupérer la valeur (vrai - faux) d'une case à cocher [ par mahojul ] Bonjour à tous, Je travaille avec Visual C++ 6 sur un OS Windows XP Pro SP3 ... je précise que je débute vraiment dans ce language ... <img src Algorithme tableaux [ par IR83 ] Salut!!Je ne suis pas programmeuse, je travaille sur des données. Et je veux faire du tri dans ces données.J'ai un tabeaux (en .txt) avec un nombre de programmer un curseur de souris [ par juju116 ] bonjour à tous tout d'abord!je suis vraiment un debutant pour tout dire je me borné juste à créer des thèmes xp a partir de logiciel genre stylebuilde


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,452 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.