Identifier un handle.

Résolu
SergentP Messages postés 20 Date d'inscription jeudi 21 février 2008 Statut Membre Dernière intervention 25 juillet 2010 - 11 juil. 2008 à 12:13
SergentP Messages postés 20 Date d'inscription jeudi 21 février 2008 Statut Membre Dernière intervention 25 juillet 2010 - 13 juil. 2008 à 19:37
Salut,
J'ai ce code :

short AutoSizeWindow(HWND hWindow, HWND MainWD)
{
HWND hWindow2;
hWindow2 = hWindow;

if (hWindow = "EditText") // EditText
{
...
}

if (hWindow = "Boutons[0]") // Bouton 'Envoyer'
{
...
}
}

Le fait d'identifier un handle avec un string n'est pas super super donc j'aimerai savoir s'il existe un moyen autre que le mien pour identifier un handle et savoir s'il est le bouton Envoyer, Fermer ou encore l'édit...
Merci d'avance .

6 réponses

cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
11 juil. 2008 à 20:22
if (hWindow = "EditText") // EditText

> conversion illogique et impossible sans cast de hwnd à char*
> '=' à la place de '=='
> un handle est un identifiant donc le comparer à une chaîne ne veut
rien dire par nature

3 erreurs en une ligne, d'où la réponse de Deathcrash.


Sinon pour répondre à ta question rien ne t'empêche de stocker les handles des différents contrôles, de manière à pouvoir faire par la suite :
if(hWindow==hEdit)
{
}
else if(hWindow==hButtonSend)
{
}

tu peux également utiliser les IDs des contrôles qui sont spécifiés lors de leur création etc...
3
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
11 juil. 2008 à 14:14
Salut,
T'es sure de ne pas vouloir lire un bouquin de C avant de te lancer dans de tel code ?

Shell
0
SergentP Messages postés 20 Date d'inscription jeudi 21 février 2008 Statut Membre Dernière intervention 25 juillet 2010
11 juil. 2008 à 17:58
Je voudrai identifier mon handle que je reçois en hWindow pour savoir si ce handle vient du bouton, de mon edit...
0
cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
11 juil. 2008 à 20:17
Bah,

#define idBtn1 1
HWND hBtn1;

...

LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)                  /* handle the messages */
    {
        case WM_COMMAND:
            if ((LOWORD(wParam)==idBtn1) && (HIWORD(wParam)==BN_CLICKED))
            {
                MessageBox(hwnd,"Btn1 clicked","Info",0);
            }
            break;
        case WM_CREATE:
            hBtn1 = CreateWindowEx(0,"BUTTON","btn1",WS_VISIBLE|WS_CHILD|BS_PUSHBUTTON|BS_NOTIFY|BS_TEXT,0,0,100,50,hwnd,(HMENU)idBtn1,hInst,NULL);
            break;
        case WM_DESTROY:
            PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
            break;
        default:                      /* for messages that we don't deal with */
            return DefWindowProc (hwnd, message, wParam, lParam);
    }

    return 0;
}
_______________________________________________________________________
VB.NETis good ...VB6is better
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
11 juil. 2008 à 20:24
ah je me suis fait devancer pendant que j'écrivais, désolé ça fait double emploi du coup
0
SergentP Messages postés 20 Date d'inscription jeudi 21 février 2008 Statut Membre Dernière intervention 25 juillet 2010
13 juil. 2008 à 19:37
Je n'avais pas penssé à l'ID de la fenetre, je pensse que c'est la meilleure facon, merci.
0
Rejoignez-nous