Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Gestion du Control ID en A

3 réponses
Avatar
mml
Bonjour et bonne année,

Question concernant les API Windows en VB6.
Comment faire pour récupérer la valeur "Control ID" d'un contrôle dont le
nom (valeur "Name") est commun à plusieurs contrôles d'un même formulaire
uniquement différenciés par ce Control ID (tel qu'il apparaît par exemple en
"Window properties" de Spy++) ?
Je tourne entre les fonctions GetWindowText, GetClassName, EnumProps... sans
réussir à m'en dépétrer.
Si par hasard...


begin 666 icon_biggrin.gif
M1TE&.#EA#P`/`+,-`$5%1?_J`````/_____.`/_)`/^T`/Z=`/_^D__]$___
MQ___Z__E`````````````"'Y! $```T`+ `````/``\```19L$D):IVXU:40
M(A<&<$D2G,0!3$!GGG"Z:H@IP'<`:LJ;![F""H#XP7"&2E' ;#J3`-M@2AT(
E"E "L$J]JC1:`?>Z`Q,83O*70B 4WF]9IF*H&X89EF4VB0``.P``
`
end

begin 666 icon_smile.gif
M1TE&.#EA#P`/`+,.`/_J`$5%10```/_.`/_)`/^T`/Z=`/_^D__]$_______
MQS,S,___Z__E`````````"'Y! $```X`+ `````/``\```1;T$D9:IW85:;.
M&1<6< @"G(,13$$G""?PIJMVF'$.:@H.GS^"*G #QH*%RB''!!"2`=.B"5@\
G*P/9:[L5K@)906(\%A!VFL&@P3736&J"7/X6!0KXPC##LM0F$0`[
`
end

3 réponses

Avatar
parci
On Wed, 2 Jan 2008 16:26:19 +0100, "mml" wrote:

Bonjour et bonne année,



Bonne année aussi,

Question concernant les API Windows en VB6.
Comment faire pour récupérer la valeur "Control ID" d'un contrôle dont le
nom (valeur "Name") est commun à plusieurs contrôles d'un même formulaire
uniquement différenciés par ce Control ID (tel qu'il apparaît par exemple en
"Window properties" de Spy++) ?
Je tourne entre les fonctions GetWindowText, GetClassName, EnumProps... sans
réussir à m'en dépétrer.



GetWindowLong avec GWL_ID pour le paramètre nIndex.
Avatar
mml
Bonjour,

Par contre, j'obtiens une autre valeur que le ID que je cherche.
En fait, c'est par la fonction GetDlgCtrlID que j'y arrive.

Je ne sais par quelle est la valeur que renvoie GetWindowLong avec GWL_ID
???

Merci de m'avoir répondu.

"parci" a écrit dans le message de
news:
On Wed, 2 Jan 2008 16:26:19 +0100, "mml" wrote:

>Bonjour et bonne année,

Bonne année aussi,

>Question concernant les API Windows en VB6.
>Comment faire pour récupérer la valeur "Control ID" d'un contrôle dont le
>nom (valeur "Name") est commun à plusieurs contrôles d'un même formulaire
>uniquement différenciés par ce Control ID (tel qu'il apparaît par exemple


en
>"Window properties" de Spy++) ?
>Je tourne entre les fonctions GetWindowText, GetClassName, EnumProps...


sans
>réussir à m'en dépétrer.

GetWindowLong avec GWL_ID pour le paramètre nIndex.



Avatar
parci
On Sat, 5 Jan 2008 12:24:21 +0100, "mml" wrote:

Bonjour,

Par contre, j'obtiens une autre valeur que le ID que je cherche.
En fait, c'est par la fonction GetDlgCtrlID que j'y arrive.

Je ne sais par quelle est la valeur que renvoie GetWindowLong avec GWL_ID
???



En principe, ça devrait être la même chose (personnellement je ne
trouve pas de différence entre les valeurs retournées par ces
fonctions pour des fenêtres filles, bien sur).

Serais-tu sous Vista 64 bits ? Si c'est le cas, il faudrait utiliser
GetWindowLongPtr et GWLP_ID.

http://msdn2.microsoft.com/en-us/library/aa932354.aspx

Identifiers are only valid for child windows. An application sets the
identifier by passing it in as the hMenu parameter to the
CreateWindowEx function. It can also be set and retrieved by calling
the SetWindowLong and GetWindowLong functions with the nIndex
parameter set to GWL_ID.

Although GetDlgCtrlID may return a value if hwndCtl identifies a
top-level window, top-level windows cannot have identifiers and such a
return value is never valid.