Une petite question:
Quelle est la fonction qui permet de retrouver le control actif dans une fenetre dont on détient le handle?
merci
ludo
Une petite question:
Quelle est la fonction qui permet de retrouver le control actif dans une fenetre dont on détient le handle?
merci
ludo
merci bcp ...
je viens de découvrir bookmark
Ce programme me donne le même handle lorsque je me situe sur une fenetre.
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 (**************************************************************** *** *** *** timer *** *** *** *****************************************************************) procedure TForm_Clavier.Timer1Timer(Sender: TObject); var Pos : Tpoint; X, Y : integer; handl : HWND; begin handl:= Getforegroundwindow(); edt_affich.text:= 'Handle_Courant = ' + inttostr(handl); // scrute les déplacement de souris BGSouris:= getAsyncKeyState(VK_LButton)<0; Handle_Courant:= WindowFromPoint(Mouse.CursorPos); GetCursorPos(Pos); Pos:= ScreenToClient(Pos); X:= Pos.X; Y:= Pos.Y; edt_affich.text:= edt_affich.text + 'Handle_Courant = ' + inttostr(Handle_Courant)+ ' ' + 'position X = ' + inttostr(X)+ ' ' + 'position Y = ' + inttostr(Y) + ' ' + inttostr(form_clavier.Width); if (BGSouris) and ((Handle_Courant) <> (Form_Clavier.Handle)) and (((X < 0 ) or (X > form_clavier.Width)) or ((Y < 0) or (Y > form_clavier.Height - 50))) then begin Handle_Cible:= Handle_Courant; edit_test.Text:= edit_test.Text + 'Handle_Cible = ' + inttostr(Handle_Cible)+ ' ' + 'position X = ' + inttostr(X)+ ' ' + 'position Y = ' + inttostr(Y); end; end;
Mais dès que je clique sur un control, la recherche de handle par le biais du curseur de la souris me donne un autre handle ( qui correspond au handle du control) tandis que "handl:= Getforegroundwindow(); " ne change pas (logique).
Je voudrais trouver la fonction qui me permettrait de trouver le handle du control devenu actif sans passer par le curseur de la souris. (Getcurseur ne marche pas pour ici apparemment).
Je ne trouve rien dans l'aide, quelques idées svp
merci d'avance
ludo
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager