Meerdere monitortoepassingen op verschillende systemen
Als u uw toepassing voor meerdere monitoraware wilt laten werken op systemen met en zonder ondersteuning voor meerdere beeldschermen, koppelt u uw toepassing aan Multimon.h. U moet ook COMPILE_MULTIMON_STUBS definiëren in precies één C-bestand. Als het systeem geen ondersteuning biedt voor meerdere monitors, retourneert dit standaardwaarden van GetSystemMetrics en fungeren de meerdere monitorfuncties alsof er slechts één beeldscherm is. Op meerdere bewakingssystemen werkt uw toepassing normaal.
Omdat negatieve coördinaten gemakkelijk kunnen optreden in een systeem met meerdere beeldschermen, moet u coördinaten ophalen die zijn verpakt in de lParam met behulp van de GET_X_LPARAM en GET_Y_LPARAM macro's.
Gebruik geen negatieve coördinaten of coördinaten die groter zijn dan SM_CXSCREEN en SM_CYSCREEN om een venster te verbergen. Windows die deze limieten gebruiken om te verbergen, kan worden weergegeven op een ander beeldscherm. Gebruik deze limieten niet om een venster zichtbaar te houden, omdat dit ertoe kan leiden dat een venster wordt uitgelijnd op de primaire monitor. Het is raadzaam om bestaande toepassingen voor deze problemen opnieuw te bekijken. U kunt echter problemen in bestaande toepassingen minimaliseren door de toepassing uit te voeren op de primaire monitor of door de primaire monitor in de linkerbovenhoek van het virtuele scherm te houden.
Houd er rekening mee dat SM_CXMAXTRACK en SM_CYMAXTRACK zijn gedefinieerd voor het bureaublad, niet slechts één monitor. Windows die deze limieten gebruikt, moet mogelijk opnieuw worden gedefinieerd.
Een bovenliggend of gerelateerd venster bevindt zich mogelijk niet op dezelfde monitor als een onderliggend venster. Als u de monitor van een venster wilt zoeken, moeten toepassingen de functie MonitorFromWindow gebruiken.
Als u een schermbeveiliging wilt weergeven op alle beeldschermen, koppelt u de nieuwste versie van Scrnsave.lib. Anders wordt de schermbeveiliging alleen weergegeven op de primaire monitor en blijven de andere beeldschermen ongewijzigd. Schermbeveiligingen die zijn gekoppeld aan de nieuwste Scrnsave.lib werken op zowel enkele als meerdere monitorsystemen. Als u een andere schermbeveiliging op elke monitor wilt hebben, gebruikt u de functies van meerdere beeldschermen om elke monitor afzonderlijk te verwerken.
Invoerapparaten die coördinaten leveren aan het systeem in absolute coördinaten, zoals tablets, hebben hun cursorinvoer beperkt tot de primaire monitor. Zie de instructies van de OEM om te schakelen tussen tabletinvoer tussen beeldschermen.
Als u muisinvoer wilt toewijzen die in absolute coördinaten naar het hele virtuele scherm wordt verzonden, gebruikt u de INPUT structuur met MOUSEEVENTF_ABSOLUTE en MOUSEEVENTF_VIRTUALDESKTOP.
De functie BitBlt werkt goed voor meerdere bewakingssystemen. De MaskBlt-, PlgBlt-, StretchBlt-en TransparentBlt--functies mislukken als de context van het bron- en doelapparaat anders is.