Setwindowpos et environnements multi-moniteurs: un guide précis
La fonction SetWindowPos
, bien que puissante, présente un défi lorsque vous travaillez avec plusieurs moniteurs. Il est par défaut de positionnement des fenêtres sur l'affichage principal. Ce guide montre comment positionner avec précision les fenêtres sur n'importe quel moniteur dans une configuration multi-moniteurs.
Cibler un moniteur spécifique
La clé consiste à déterminer les coordonnées du moniteur cible, puis à ajuster la position de la fenêtre en conséquence. Cela implique ces étapes:
Identifier les limites du moniteur: Utilisez la propriété Screen.AllScreens
pour récupérer les limites de chaque moniteur connecté.
Localisez le moniteur cible: itérer dans le tableau Screen.AllScreens
pour trouver le moniteur où vous souhaitez positionner votre fenêtre. Cela peut impliquer de vérifier la résolution d'écran, l'index ou d'autres caractéristiques d'identification.
Calculer les coordonnées de la fenêtre: La coordonnée x de votre fenêtre dépendra de la position du moniteur cible par rapport au moniteur principal.
Positionnez la fenêtre: Enfin, utilisez SetWindowPos
avec la coordonnée X calculée, la coordonnée Y souhaitée et les indicateurs appropriés (par exemple, SWP_NOZORDER
, SWP_NOSIZE
, SWP_SHOWWINDOW
)) .
Exemple: Positionnement sur un moniteur gauche
l'extrait de code C # suivant illustre le positionnement d'une fenêtre sur un moniteur secondaire situé à gauche de l'affichage principal:
<code class="language-csharp">int secondaryMonitorWidth = Screen.AllScreens[1].Bounds.Width; int primaryMonitorOriginX = Screen.AllScreens[0].Bounds.X; int windowXCoordinate = primaryMonitorOriginX - secondaryMonitorWidth; int windowYCoordinate = 0; // Adjust as needed SetWindowPos(handle, IntPtr.Zero, windowXCoordinate, windowYCoordinate, 0, 0, SWP_NOZORDER | SWP_NOSIZE | SWP_SHOWWINDOW);</code>
N'oubliez pas de remplacer handle
par la poignée de la fenêtre et de régler windowYCoordinate
à la position verticale souhaitée. Cette approche garantit un placement précis des fenêtres sur plusieurs moniteurs, quelle que soit leur configuration.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!