Comment Obtenir Une Poignée à Une Fenêtre

Table des matières:

Comment Obtenir Une Poignée à Une Fenêtre
Comment Obtenir Une Poignée à Une Fenêtre

Vidéo: Comment Obtenir Une Poignée à Une Fenêtre

Vidéo: Comment Obtenir Une Poignée à Une Fenêtre
Vidéo: Réparer une poignée de fenêtre PVC. 2024, Avril
Anonim

Le concept de l'interface utilisateur dans Windows est basé sur le concept d'une fenêtre. Les dialogues, les boutons, les panneaux de contrôle, les listes sont autant de fenêtres. Par conséquent, afin d'effectuer une action avec n'importe quel élément de l'interface de votre propre application ou de celle de quelqu'un d'autre, vous devez obtenir un handle de fenêtre.

Comment obtenir une poignée à une fenêtre
Comment obtenir une poignée à une fenêtre

Nécessaire

  • - Package de plate-forme SDK;
  • - compilateur.

Instructions

Étape 1

Obtenez la poignée de la fenêtre en la créant. Appelez les fonctions API CreateWindow ou CreateWindowEx, ou appelez les méthodes wrapper appropriées (sur les objets nécessaires) des classes du framework ou de la bibliothèque utilisé qui encapsulent la fonctionnalité de travail avec des fenêtres ou des contrôles. Les fonctions CreateWindow et CreateWindowEx renvoient directement le poignée de fenêtre en cas de création réussie. S'ils n'ont pas été appelés, ils renvoient NULL. Le code de raison de l'erreur peut être demandé à l'aide de la fonction API GetLastError. Des prototypes et des descriptions détaillées des paramètres des fonctions CreateWindow et CreateWindowEx peuvent être obtenus à partir des liens https://msdn.microsoft.com/en-us/library/windows/desktop/ms632679%28v=vs.85%29.aspx et https:// msdn.microsoft.com / en-us / library / windows / desktop / ms632680% 28v = vs.85% 29.aspx Lors de l'utilisation de classes de différents frameworks, la création d'objets de fenêtre de système d'exploitation peut se produire soit explicitement (en appelant une méthode) ou implicitement (mise en œuvre de la stratégie RAII). Par conséquent, il est préférable d'obtenir le handle de fenêtre sur un objet initialisé prêt à l'emploi. Vous pouvez découvrir les méthodes des classes qui retournent le handle de fenêtre encapsulé par l'objet dans la documentation du framework correspondant. Par exemple, dans MFC, une méthode similaire est GetSafeHwnd de la classe CWnd.

Étape 2

Obtenez une poignée à une fenêtre en la recherchant. Utilisez les fonctions API FindWindow et FindWindowEx ou les wrappers d'objets de classe appropriés pour l'infrastructure que vous utilisez. FindWindow renvoie un handle vers la fenêtre de niveau supérieur s'il est trouvé, ou NULL en cas d'échec. La recherche est effectuée par nom de classe et titre de fenêtre. La description des paramètres et des aspects de la fonction est disponible sur le lien https://msdn.microsoft.com/en-us/library/windows/desktop/ms633499%28v=vs.85%29.aspx. la fonction FindWindowEx est similaire à FindWindow à la seule différence qu'elle recherche les fenêtres enfants. La documentation de FindWindowEx est disponible à l'adresse

Étape 3

Trouvez la poignée de la fenêtre tout en répertoriant leurs ensembles. Utilisez les fonctions API EnumWindows, EnumChildWindows, EnumThreadWindows ou les méthodes des objets de classe du framework que vous utilisez. Les fonctions EnumWindows et EnumChildWindows énumèrent respectivement les fenêtres de niveau supérieur et les fenêtres enfants. La fonction EnumThreadWindows énumère toutes les fenêtres non enfants du thread spécifié. Chacune de ces fonctions doit recevoir un pointeur vers une procédure de rappel, qui recevra les descripteurs des fenêtres trouvées en tant que paramètres pendant l'opération. En combinant des fonctions d'énumération, en obtenant et en analysant les propriétés de la fenêtre dans la procédure de rappel, vous pouvez trouver le descripteur de la fenêtre souhaitée. La documentation des fonctions décrites est donnée sur les liens: - EnumWindows: https://msdn.microsoft.com/en-us/library/windows/desktop/ms633497 %28v=vs.85%29.aspx; - EnumChildWindows: https://msdn.microsoft.com/en-us/library/windows/desktop/ms633494%28v=vs.85%29.aspx; - EnumThreadWindows: https://msdn.microsoft.com/en-us/library /windows/desktop /ms633495 %28v=vs.85%29.aspx.

Étape 4

Obtenez une poignée à une fenêtre à des coordonnées connues. Les fonctions WindowFromPoint, ChildWindowFromPoint, ChildWindowFromPointEx renvoient des descripteurs aux fenêtres auxquelles appartient le point spécifié. La fonction WindowFromPoint est la plus simple à utiliser, mais ne renvoie pas de descripteurs pour les fenêtres masquées ou désactivées. Vous pouvez trouver de la documentation sur son utilisation à l'adresse https://msdn.microsoft.com/en-us/library/windows/desktop/ms633558%28v=vs.85%29.aspx. Les fonctions ChildWindowFromPoint et ChildWindowFromPointEx trouvent des poignées pour l'enfant fenêtres d'une fenêtre mère donnée appartenant à un point donné. Dans ce cas, le comportement de ChildWindowFromPointEx peut être contrôlé de manière flexible à l'aide d'un paramètre supplémentaire. La documentation de ces fonctions est fournie par les liens: - ChildWindowFromPoint: https://msdn.microsoft.com/en-us/library/windows/desktop/ms632676%28v=vs.85%29.aspx; - ChildWindowFromPointEx: https:// msdn.microsoft.com/en-us/library/windows/desktop/ms632677%28v=vs.85%29.aspx.

Conseillé: