begin process at 2012 02 14 03:11:48
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Formulaire

 > SAVOIR SI UNE FENETRE EST AU PREMIER PLAN PERMANENT

SAVOIR SI UNE FENETRE EST AU PREMIER PLAN PERMANENT


 Information sur la source

Note :
4 / 10 - par 4 personnes
4,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Formulaire Niveau :Débutant Date de création :12/04/2004 Vu :6 574

Auteur : azerty25

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note


 Description

Salut la compagnie

J'ai fait cette routine pour savoir si une fenetre est au premier plan permanent car aucune API à ce que je sais ne peux le dire directement.

Le principe : si une fenetre à tester se laisse recouvrir par une autre fenetre qui est elle standard, alors la fenetre à tester n'est pas au premier plan permanent

Il vous faut une form, contenant le code ci dessous, un bouton et un textbox dans la meme form, et une form supplémentaire (form2) contenant aucun code

Source

  • Private Type RECT
  • Left As Long
  • Top As Long
  • Right As Long
  • Bottom As Long
  • End Type
  • Private Type POINTAPI
  • X As Long
  • Y As Long
  • End Type
  • Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
  • Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
  • 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
  • Form2.Show 'affichage de form2
  • Form2.Left = Rec.Left * Screen.TwipsPerPixelX 'à la meme X que la fenetre a tester (les donnée en VB étant par defaut en twips, on multiplie pour avoir les mesures en pixels pour l'écran
  • Form2.Top = Rec.Top * Screen.TwipsPerPixelY 'à la meme Y que la fenetre à tester (les donnée en VB étant par defaut en twips, on multiplie pour avoir les mesures en pixels pour l'écran
  • If WindowFromPoint(Rec.Left, Rec.Top) = Form2.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
  • Unload Form2
  • End Function
  • Private Sub Command1_Click()
  • MsgBox TopAsk(Text1.Text)
  • End Sub
Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type

Private Type POINTAPI
    X As Long
    Y As Long
End Type

Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long

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
Form2.Show 'affichage de form2
Form2.Left = Rec.Left * Screen.TwipsPerPixelX 'à la meme X que la fenetre a tester (les donnée en VB étant par defaut en twips, on multiplie pour avoir les mesures en pixels pour l'écran
Form2.Top = Rec.Top * Screen.TwipsPerPixelY 'à la meme Y que la fenetre à tester (les donnée en VB étant par defaut en twips, on multiplie pour avoir les mesures en pixels pour l'écran
If WindowFromPoint(Rec.Left, Rec.Top) = Form2.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
Unload Form2
End Function

Private Sub Command1_Click()
MsgBox TopAsk(Text1.Text)
End Sub

 Conclusion

N"hésitez pas pour les commentaires et Joyeuses Paques ;)


 Sources du même auteur

Source avec Zip SAVOIR SI UN OBJET EST CACHÉ PAR UN AUTRE(FENÊTRES, CONTROLE...
Source avec Zip WINDOWSMOVE(R) - DÉPLACER DES FENÊTRES (HANDLES) QUI NE SONT...
TECHNIQUES POUR EMPECHER LE DÉCHARGEMENT DE LA FEUILLE
EXTRAIRE LE RÉPERTOIRE D'UN FICHIER, SON EXTENSION, SON NOM,...
Source avec Zip Source avec une capture TOPMOST M@N@G(R) - METTRE UNE FENETRE AU PREMIER PLAN PERMAN...

 Sources de la même categorie

Source avec Zip GEST COTISATION - ASSOCIATION par MOHA555
Source avec Zip HSCROLLBAR POUR L'ARRIÈRE PLAN par 320C
Source avec Zip Source avec une capture Source .NET (Dotnet) METTRE VOTRE FORM VB.NET EN PLEINE ÉCRAN par Gabilach
RECHERCHE DANS UNE LISTE À PARTIR D'UN CHAMP TEXTE par jmeunier
Source avec Zip GESTION DES COMSOMMABLE par gboraud

Commentaires et avis

Commentaire de azerty25 le 12/04/2004 13:35:00

J'ai oublié de signaler que dans text1, vous entrez le handle de la fenetre à tester

Commentaire de DeadlyPredator le 13/04/2004 18:45:18

pi aussi, pourrais tu expliqué comment avoir le handle d'une fenêtre car il va surement y avoir du monde qui savent pas c'est quoi

Commentaire de azerty25 le 13/04/2004 18:51:22

Sa dépend, il y a plusieurs méthodes, avoir le handle par son titre de fenetre, par listage de toutes les fenetres ouvertes et sélection apres, ou encore le handle de celle qui est au premier plan, ou encore celle qui se trouve sous le curseur, et j'en oublie surement, Tu préfere laquelle ? ;)

Commentaire de webdesignasp le 24/05/2004 14:09:47

toutes les méthodes de récupérations du handle serait bien car c'est une question qui revient souvent

(MERCI)

Commentaire de azerty25 le 26/05/2004 00:33:37

Ok, alors je ferai ça pour toi (ou vous à propos de la communauté ? :-o hihihi) demain si j'ai le temps, un zoli pti résumé de toutes les méthodes que je connai

Commentaire de GrosLolo le 13/04/2006 16:52:44

Cette méthode ne fonctionne pas :-(
Même si la fenêtre est au premier plan, j'ai un retour à True.

Commentaire de big_S le 19/05/2006 02:52:17

sa fonctionne a merveille merci bonhomme ;)

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,934 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales