2010-02-15 18 views

Répondre

13

Si vous êtes sur le formulaire: Me.hWnd. Si vous ne savez pas quelle forme est la forme actuelle: Screen.ActiveForm.hWnd

2

Il a été longtemps que je VB6, mais ce que je me souviens:

Vous voulez ouvrir le Viewer API, qui devrait être dans le menu Démarrer dans l'entrée VB6. Lorsque vous l'ouvrez, vous voulez sélectionner win32api.txt, et vous obtiendrez une liste de toutes les fonctions de l'API Win32. C'est le moyen le plus simple de ne pas gâcher les signatures de fonction. Copiez et collez la déclaration de la fonction dans l'un de vos modules VB6.

J'ai toujours "triché" et simplement cherché ma fenêtre par nom de légende, au lieu de boucler sur toutes les fenêtres disponibles avec GetWindow. Si vous êtes d'accord avec cela, vous voulez utiliser FindWindow et passer le nom de la légende comme deuxième paramètre.

8

Utilisation de l'API de Windows, GetForegroundWindow() obtiendrez la poignée de la fenêtre supérieure quelle que soit l'application, il est originaire, et GetActiveWindow() obtiendrez la poignée de de votre application fenêtre active. Les déclarations Declare dont vous aurez besoin:

Declare Function GetForegroundWindow Lib "user32.dll"() As Long 
Declare Function GetActiveWindow Lib "user32.dll"() As Long 

Appel soit fonction retournera une poignée de fenêtre comme décrit ci-dessus.

+0

+1. Évidemment, la fenêtre actuellement active peut ne pas être un formulaire. – MarkJ

+0

+1 Bonne réponse aussi. –