Bonjour à tous,

Le titre indique tout. Je programme en Windev 7, et pour l'instant j'ai fait un timer qui récupère le handle de tous les objets survolés. Mon objectif est de manipuler la dernière fenêtre active. Ma fenêtre ne prend que le haut de l'écran et est en TopMost. Donc la fenêtre que je souhaite manipuler et la mienne sont côte à côte. J'utilise l'API GetParent pour trouver le handle de la fenêtre à laquelle cet objet appartient (sachant que je ne sais pas pourquoi, sous Windev l'API GetAncestor ne fonctionne pas), mais je ne trouve pas le bon Handle. Voici le code de mon Timer;
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
//declarations
//------------
POINT est une structure 
	x est un entier long
	y est un entier long
FIN
Pt est un POINT
hWnd est un entier long //HANDLE
hDC est un entier long
nCount est un entier
lpString est une chaîne ASCIIZ sur 255 //handle de l'objet

//trouver le handle de l'objet survolé par la souris
//--------------------------------------------------
AppelDLL32("user32", "GetCursorPos", &Pt)
hWnd = AppelDLL32("user32", "WindowFromPoint", Pt:x, Pt:y)
hDC = AppelDLL32("user32", "GetDC", hWnd)
lpString = NumériqueVersChaine( hWnd )
nCount = Taille(lpString)

//enregistrer le handle de la fenêtre à laquelle appartient l'objet trouvé
//------------------------------------------------------------------------
hWnd = lpString
hWnd  =AppelDLL32("user32","GetParent",hWnd)
//si c'est une fenêtre externe au programme et le handle est non nul
SI hWnd <> Handle&#40;&#41;  OU hWnd <> "" OU hWnd <> 0 ALORS  //handle&#40;&#41; => handle de ma fenêtre 
	SI SysFenTitre&#40;hWnd&#41; <> "" ALORS //une autre vérification en plus pour vérifie que le handle trouvé correspond bien à une fenêtre ouverte &#40;inutile&#41;
		HwndFen = hWnd // hWndFen est une constante
		Et_temp = hWnd // ajouter le handle à une étiquette de mon programme
	FIN
FIN
Le problème c'est que le handle qui est censé être celui de la fenêtre parente de l'objet est différent en fonction des objets survolés de la même fenêtre (ouh! est-ce que je suis clair là? ). Je ne devrais donc pas utiliser GetParent. Mais qu'utiliser à la place?

J'ai essayé d'utiliser l'API GetActiveWindow pour récupérer le handle de la fenêtre active si ce n'est pas celui de mon prog, mais je n'y arrive pas non plus.

Pouvez-vous m'indiquer mes fautes, comment les réparer ou comment faire si j'ai tout faux?