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

 C++ Discussion :

Conversion de données ? Affichages différents selon type d'application


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2005
    Messages : 34
    Par défaut Conversion de données ? Affichages différents selon type d'application
    Bonjour/bonsoir à tous,

    Me lançant dans la programmation tactile sous windows 7, je rencontre un petit soucis d'encodage ? de stockage ? de donner.

    Les applications utilisant le tactile de windows 7 sont généralement des applications WIN32 avec sa syntaxe bien connu (windowshandle, hinstance, etc...), bref, l'application de base dont je me suis inspirée est développée comme ça et marche impecc!

    Là, vu que cela fait 1 an que je travaille sur mon projet, défini en glut car, ici mon code doit être exécuté sur tout type d'os... mon programme est donc un programme "classique" type c/c++ (int main() etc...)

    J'arrive à "capter" les touch de mon interface tactile dans mon programme, et surtout à identifier que cela est bien un "touch".

    Mais je n'arrive pas à afficher les informations de façon à les afficher !

    En fait, je récupère une structure du type TOUCHINPUT, définie ici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    typedef struct _TOUCHINPUT {
      LONG      x;
      LONG      y;
      HANDLE    hSource;
      DWORD     dwID;
      DWORD     dwFlags;
      DWORD     dwMask;
      DWORD     dwTime;
      ULONG_PTR dwExtraInfo;
      DWORD     cxContact;
      DWORD     cyContact;
    } TOUCHINPUT, *PTOUCHINPUT;
    lorsque je veux afficher (j'utilise un ostringstream que je balance en sortie standard, en console)...

    J'ai du n'importe quoi ! genre -645545431234

    et cela ne varie pas !

    Or que sur l'application démo dont je me suis inspirer, c'est exactement le même principe qui est utilisé !

    Est-ce un problème au niveau de mon type d'appli ? (Je développe sous VS2008) ?

    J'avoue... j'ai jamais vu ça....

    Merci à vous de votre aide, d'avance...

    Bonne soirée

  2. #2
    Membre émérite
    Inscrit en
    Juillet 2005
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 512
    Par défaut
    Je n'ai pas compris ce que tu voulais afficher ??

  3. #3
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Salut,
    Pourrais-tu montrer le bout de code. On dirait que ta zone n'est pas initialisée ou que tu déréférences une mauvaise adresse ou que tu écris un pointeur(?) ... bref quelque chose de bizarre dans ce que tu essaies d'afficher.

  4. #4
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2005
    Messages : 34
    Par défaut
    Alors, je vais essayé de mettre des bouts de codes, parce que mon projet prends énormément de place...

    Alors premièrement les variables globales, et prototypes...

    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
     
    /********* Multitouch *********/
     
    #define MAX_LOADSTRING 100
     
    #include <sstream>
     
    #include "targetver.h"
    #include "resource.h"
     
    // C RunTime Header Files
    #include <stdlib.h>
    #include <malloc.h>
    #include <memory.h>
    #include <tchar.h>
     
    #ifdef _WIN32
    HWND		windowHandle;
    HINSTANCE	hInstance; 
    HDC			deviceContext;
     
    // Prototypages de functions
    LRESULT OnTouch(HWND hWnd, WPARAM wParam, LPARAM lParam );
    void PrintTouch(TOUCHINPUT* ti);
     
    #endif
    /******************************/
    je ne mets pas le fichiers resources.h qui ne contient de des défines...

    Ensuite le code de mes fonctions...

    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
     
    void PrintTouch(TOUCHINPUT ti)
    {
    	ostringstream wss;
     
    	wss << "ID: " << ti.dwID << " ";
    	wss << "x: " << ti.x << " ";
    	wss << "y: " << ti.y << " ";
     
     
    	if(ti.dwFlags & TOUCHEVENTF_MOVE)
    		wss << "TOUCHEVENTF_MOVE ";
    	if(ti.dwFlags & TOUCHEVENTF_DOWN)
    		wss << "TOUCHEVENTF_DOWN ";
    	if(ti.dwFlags & TOUCHEVENTF_UP)
    		wss << "TOUCHEVENTF_UP ";
    	if(ti.dwFlags & TOUCHEVENTF_PRIMARY)
    		wss << "TOUCHEVENTF_PRIMARY ";
     
    	printf("%s\n",wss.str().c_str());
    }
     
    LRESULT OnTouch(HWND hWnd, WPARAM wParam, LPARAM lParam )
    {
        UINT cInputs = LOWORD(wParam);
     
    	int x = 0;
    	int y = 0;
     
     
     
    	PTOUCHINPUT pInputs = new TOUCHINPUT[cInputs];
    	GetTouchInputInfo((HTOUCHINPUT)lParam, cInputs, pInputs, sizeof(TOUCHINPUT));
    	printf("%d\n",cInputs);
    	for (UINT i=0; i < cInputs; i++)
    	{
    			TOUCHINPUT ti = pInputs[i];
     
                PrintTouch(ti);
        }            
     
        delete [] pInputs;
    	ReleaseDC(hWnd, deviceContext);
    	return 0;
    }
    Ici le code de mon "main"...

    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
     
     
    ....
    glutCreateWindow(windowTitle);
     
    	#ifdef _WIN32
    		// Multitouch Windows
    	    HWND windowHandle = FindWindow(NULL,title.c_str());
    		deviceContext = GetDC(windowHandle);		
    		RegisterTouchWindow(windowHandle, 0);
     
    	#endif
     
        glutDisplayFunc(redraw);
        //glutMouseFunc(mousebuttonfunc);
        glutMotionFunc(mousemotionfunc);
        glutKeyboardFunc(keyboardfunc);
        glutIdleFunc(idle);
     
        resetview();
     
        glutMainLoop();
    Ici le code concernant le multitouch de ma fonction idle de callback.

    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
     
    void idle()
    {
       ...
     
    	MSG msg;
    	PeekMessage(&msg, windowHandle, 0, 0,1);
    	TranslateMessage(&msg);
    	switch(msg.message)
    	{
    		case WM_TOUCH:
    			OnTouch(msg.hwnd, msg.wParam, msg.lParam);
    			need_redraw();
            break;
    	}
    }

Discussions similaires

  1. [PDF] Données affichées différentes selon l'outil d'affichage utilisé
    Par Jipété dans le forum Bureautique
    Réponses: 4
    Dernier message: 02/10/2014, 11h53
  2. Affichage différent selon URL de provenance
    Par BnA dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 07/08/2007, 14h30
  3. affichage différent selon résolution
    Par altadeos dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 15/12/2006, 11h58
  4. [Dates] affichage différent selon le mois en cours
    Par itri2005 dans le forum Langage
    Réponses: 3
    Dernier message: 07/04/2006, 17h05
  5. Affichage différent selon texte dans une case
    Par pingoo78 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/11/2005, 16h32

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