Vérifier si une form est au dessus de toute les autres

Résolu
cs_drakkard Messages postés 99 Date d'inscription lundi 20 juin 2005 Statut Membre Dernière intervention 20 janvier 2009 - 27 juin 2006 à 11:39
cs_drakkard Messages postés 99 Date d'inscription lundi 20 juin 2005 Statut Membre Dernière intervention 20 janvier 2009 - 28 juin 2006 à 10:45
Bonjour Bonjour,

j'avais déjà posé cette question il y a peu, j'ai eu des réponses mais voilà j'ai un autre problème en rapport à celui-ci.
Dès que je passe en theme XP, cela ne fonctionne plus. Voici le bout de code utilisé...

Private Function TopAsk(hWnd As Long) As Boolean

    Dim Rec As RECT 'declaration de la variable accueuillant les infos de la position de la fenetre désirée
    GetWindowRect hWnd, Rec 'enregistrement des infos
    If Not WindowFromPoint(Rec.Left, Rec.Top) = Me.hWnd Then  'si la fenetre au premier plan et au points X et Y de la fenetre a tester est la meme que celle que l'on a affiché, alors la fenetre a tester n'est pas en premier plan permanent car elle s'est laissée recouvrir
        TopAsk = False
    Else
        TopAsk = True
    End If
   
End Function

private sub cmd_click()
    If TopAsk(Me.hWnd) then msgbox "On Top"
end sub

Merci des réponses

 Bidouille & Cie

3 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
27 juin 2006 à 17:44
Salut
C'est bien compliqué et peu sûr puisqu'il suffit que deux formes aient la même position pour qu'il y ait erreur.

Pourquoi GetForegroundWindow ne marcherait-il pas ?
If GetForegroundWindow = LaFormeATester.Hwnd Then MsgBox LaFormeATester.Caption

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accro
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
27 juin 2006 à 19:22
PS : GetForegroundWindow  est une API définie comme ceci :
Private Declare Function GetForegroundWindow Lib "user32" () As Long
3
cs_drakkard Messages postés 99 Date d'inscription lundi 20 juin 2005 Statut Membre Dernière intervention 20 janvier 2009
28 juin 2006 à 10:45
Merci merci, impect !!!!

 Bidouille & Cie
0
Rejoignez-nous