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

DirectX Discussion :

[DirectInput] Position de la souris absolue à la fenêtre


Sujet :

DirectX

  1. #1
    Membre régulier Avatar de Ingham
    Profil pro
    Inscrit en
    Août 2002
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 156
    Points : 75
    Points
    75
    Par défaut [DirectInput] Position de la souris absolue à la fenêtre
    (Re)bonjour à tous, j'ai encore un soucis avec DirectX, et c'est DirectInput cette fois qui m'embête

    Je voudrais simplement récupérer la position absolue de ma souris par rapport à ma fenêtre, le point 0,0 étant le coin en haut à gauche...

    J'ai bien sur essayé d'incrémenter 2 variables X et Y avec les valeurs de vélocité données par DInput, mais le problème c'est que si le programme commence quand le curseur se situe en bas de la fenêtre.... Le point 0,0 sera ici, et non pas dans l'angle
    La propriétés AxisModeAbsolute retourne quand à elle des valeurs farfelues (dans les -10000000 à peu près )

    Et j'aimerais, autant que possible, éviter d'utiliser GDI

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Avec DirectInput je ne sais plus si on peut le faire directement, mais avec l'API Win32 c'est assez simple, il faut utiliser GetCursorPos pour avoir les coordonnées souris globales, puis utiliser une autre fonction dont j'ai oublié le nom pour convertir en coordonnées locales à la fenêtre.

  3. #3
    Membre régulier Avatar de Ingham
    Profil pro
    Inscrit en
    Août 2002
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 156
    Points : 75
    Points
    75
    Par défaut
    Mais ca risque pas de baisser un peu les perfs d'utiliser un API Win32 au milieu d'un programme DirectX?

  4. #4
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 363
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 363
    Points : 20 394
    Points
    20 394
    Par défaut
    Citation Envoyé par Ingham
    Et j'aimerais, autant que possible, éviter d'utiliser GDI
    Merci d'avance
    TU mélanges tout ;
    le GDI c'est fait pour dessiner...
    au besoin utiliser SetCursorPos

  5. #5
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Citation Envoyé par Ingham
    Mais ca risque pas de baisser un peu les perfs d'utiliser un API Win32 au milieu d'un programme DirectX?
    Pas vraiment non, pas sur ce genre de fonction en tout cas.

  6. #6
    Membre régulier Avatar de Ingham
    Profil pro
    Inscrit en
    Août 2002
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 156
    Points : 75
    Points
    75
    Par défaut
    Oki merci à vous 2

  7. #7
    Membre expérimenté

    Profil pro
    Programmeur
    Inscrit en
    Août 2002
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Août 2002
    Messages : 1 091
    Points : 1 679
    Points
    1 679
    Par défaut
    Citation Envoyé par Ingham
    Mais ca risque pas de baisser un peu les perfs d'utiliser un API Win32 au milieu d'un programme DirectX?
    L'API win32 est constamment utilisée puisque c'est la base de tout programme windows. Programmer en directX ne s'affranchit pas soudainement de la plateforme windows. Par exemple un programme dx doit constamment sonder la file de messages, il doit appeler win32 pour allouer de la mémoire virtuelle, pour tracer la fenetre à l'écran, pour creer et synchroniser des threads ou des processes... c'est bon ? ou je continue

    Pour ce qui est de direct input et sa rapidité, il faut savoir que sous windows XP, il n'y a pas de direct input natif. Tout passe par la file de messages (messages WM_KEY, WM_MOUSE, WM_INPUT), et est converti au format directInput. Il n'y a donc aucun intéret de vitesse à utiliser direct input si ce n'est pour compatibilité avec l'ancien code.

    LeGreg

    Mon site web | Mon blog | Mes photos | Groupe USA
    > BONJOUR, JE SUIS NOUVEAU SUR CE FORUM
    > presse la touche caps lock, stp
    > OH.. MERCI C EST BEAUCOUP PLUS FACILE COMME CA

  8. #8
    Membre régulier Avatar de Ingham
    Profil pro
    Inscrit en
    Août 2002
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 156
    Points : 75
    Points
    75
    Par défaut
    Oki, je savais pas
    Merci

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 434
    Points : 82
    Points
    82
    Par défaut
    Pour info on dit "position relative à la fenetre" pas "absolue"

  10. #10
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 363
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 363
    Points : 20 394
    Points
    20 394
    Par défaut
    Citation Envoyé par LeGreg
    Il n'y a donc aucun intéret de vitesse à utiliser direct input si ce n'est pour compatibilité avec l'ancien code.
    LeGreg
    C'est certain qu'appeler Direct Input y'a pas vraiment une difference flagrante ( peut-etre pour les manches a retour de force c'est mieux )
    PArfois pour le clavier un simple GetAsyncKeyState suffit

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 73
    Points : 69
    Points
    69
    Par défaut
    Ben moi perso j'ai voulu utiliser mouse.Properties.AxisModeAbsolute = false; et il me leve une execption dessus...
    allez savoir pourquoi, ca me fait pareil quand je fait un presentParameters.Windowed = True; et plein d'autre fonctions comme ca...

    bon au moins j'ai reussi a corriger celui de la souris avec l'apiwin32

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Position de la souris relative à la fenêtre
    Par Orci76 dans le forum VB.NET
    Réponses: 7
    Dernier message: 13/06/2012, 09h45
  2. Réponses: 2
    Dernier message: 07/01/2012, 14h01
  3. Menu en position:fixed plus haut que la fenêtre
    Par Maximil ian dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 15/12/2004, 23h14
  4. Déterminer la position de la souris
    Par genteur slayer dans le forum Composants VCL
    Réponses: 6
    Dernier message: 16/06/2003, 11h01
  5. FOnction api specifiant la position de la souris
    Par florent dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/05/2002, 20h07

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