Positionnant efficacement Windows à travers plusieurs moniteurs à l'aide de setwindowpos
nécessite une compréhension nuancée de la configuration d'affichage du système et du concept d'écran virtuel.
Configuration d'affichage du système:
L'origine du moniteur principal est (0, 0). Les moniteurs secondaires ont des coordonnées x négatives (à gauche de la primaire) ou des coordonnées x positives (à droite de primaire).
L'écran virtuel:
Il s'agit d'un affichage conceptuel englobant tous les moniteurs connectés. Son origine est le coin supérieur gauche du moniteur le plus à gauche. Sa largeur est la somme de toutes les largeurs de moniteur, et sa hauteur est la hauteur du moniteur le plus haut.
tirant parti de l'écran
class:
La classe
propose des méthodes pour récupérer des informations d'écran cruciales:
screen.fromHandle (hwnd)
: identifie l'écran contenant une fenêtre donnée (hwnd). écran.getBounds (rect)
: renvoie les limites de l'écran contenant un rectangle spécifié. screen.deviceName
: récupère le nom du périphérique de l'écran, utile pour la création de contexte graphique. Utilisation de fonctions Win32 native:
Ces fonctions fournissent des méthodes alternatives pour l'identification du moniteur:
MonitorFromWindow
: renvoie la poignée du moniteur associée à une fenêtre. monitorfRompIval
: renvoie la poignée du moniteur pour un point donné. monitorfromrect
: renvoie la poignée du moniteur pour un rectangle donné. setwindowpos
et surveiller les coordonnées pour positionner une fenêtre sur un moniteur spécifique en utilisant setWindowpos
, suivez ces étapes:
Identifiez le moniteur cible: Obtenez la poignée hmonitor
du moniteur souhaité en utilisant les méthodes décrites ci-dessus.
Calculer les coordonnées d'écran virtuelles: ajustez les coordonnées x de la fenêtre en fonction de la position du moniteur par rapport au moniteur principal. Soustrayez la largeur totale des moniteurs précédents pour ceux à gauche de la primaire, et ajoutez la largeur totale des moniteurs précédents et le primaire pour ceux à droite.
utilisez setWindowPos
: utilisez les coordonnées d'écran virtuelles calculées dans le setwindowpos
appel:
SetWindowPos(hwnd, hWndInsertAfter, x, y, cx, cy, SWP_NOZORDER | SWP_NOSIZE | SWP_SHOWWINDOW);
En considérant soigneusement l'agencement d'affichage du système et en utilisant ces techniques, vous pouvez positionner avec précision Windows sur n'importe quel moniteur dans une configuration multi-moniteur à l'aide de setWindowpos
.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3