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 :

Communiquer avec les controles d'une fenetre


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de theclem35
    Homme Profil pro
    Technicien Réseaux & Télécommunications
    Inscrit en
    Décembre 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien Réseaux & Télécommunications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 148
    Par défaut Communiquer avec les controles d'une fenetre
    Salut,

    Voila je cherche à lire du texte dans les controles d'une fenetre (API win32).
    Cela marche plutot pas mal, sauf qu'il n'arrive pas à lire quand il s'agit d'editbox !

    J'utilise une fenetre d'un programme précédent que j'ai concu pour faire mes tests.

    Voici la fenetre :


    Voici ce que j'ai dans la console :


    Voici mon code :
    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <windows.h>
     
    int main(int argc, char *argv[])
    {
        HWND handleFenetre, handleControle[20] = { 0 };
        int idControle[20] = { 0 }, i;
        char textelu[20][100] = { 0 };
     
        handleFenetre = FindWindow(NULL,"Heberger une partie ..."); // On recupere le handle de la fenetre
        Sleep(100);
     
        printf("Handle fenetre = %d\n\n",handleFenetre);
     
        for (i=0;i<15;i++)
        {
            if(i==0)
            {
                handleControle[i] = GetWindow(handleFenetre,GW_CHILD); // On recupere le handle du sous-controle
            }
            else
            {
                handleControle[i] = GetWindow(handleControle[i-1],GW_HWNDNEXT); // On recupere le handle du sous-controle
            } 
     
            idControle[i] = GetDlgCtrlID(handleControle[i]); // On s'en sert alors pour recuperer son ID
            GetDlgItemText(handleFenetre, idControle[i], textelu[i], 100); // On lit le texte du controle grace à son ID
     
     
            printf("Handle controle %d = %d\n",i,handleControle[i]);
            printf("Id controle %d = %d\n",i,idControle[i]);
            printf("Texte ctl %d = %s\n\n",i,textelu[i]); // On affiche le texte
        }
     
      system("PAUSE");	
      return 0;
    }
    Donc comme vous pouvez le voir, je n'arrive pas à lire les controles editables!

    Voyez vous mon erreur ?

  2. #2
    Membre Expert Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 366
    Par défaut
    Pourquoi se prendre la tête avec les ID !!
    Je ne sais pas si ca va résoudre le souci.
    Utilise direct GetWindowText.

Discussions similaires

  1. Réponses: 7
    Dernier message: 26/03/2011, 07h41
  2. Réponses: 11
    Dernier message: 03/10/2010, 13h44
  3. Communiquer avec les élements d'une frame
    Par Gomoz dans le forum C#
    Réponses: 2
    Dernier message: 28/09/2007, 17h23
  4. [C#] Peupler une listBox avec les controls d'un panel ?
    Par clinic dans le forum Windows Forms
    Réponses: 5
    Dernier message: 11/07/2007, 20h41
  5. Réponses: 2
    Dernier message: 04/07/2007, 14h20

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