ใช่.
Pplu สงสัยว่าทำไมโปรแกรมทำงานช้ามากขึ้นเมื่อระบบทำงานกับจอภาพหลายจอ
แน่นอนว่าสิ่งหนึ่งที่แน่นอนเมื่อคุณมีจอภาพมากกว่าหนึ่งจอมีสิ่งต่าง ๆ บนหน้าจอมากขึ้นสำหรับระบบที่จะติดตาม เป็นเหตุผลเดียวกันที่โปรแกรมทำงานช้าลงบนจอภาพขนาดใหญ่กว่าบนจอภาพขนาดเล็ก
และถ้ามีจอภาพเพียงจอเดียวฟังก์ชั่นMonitorFromPoint
จะกลายเป็นเรื่องไม่สำคัญหากธงมีลักษณะเช่น
MONITOR_DEFAULTTONEAREST
นี้เพราะเมื่อมีจอภาพเพียงจอเดียวให้ตอบคำถามเช่น "จอภาพใดที่อยู่ใกล้จุดนี้มากที่สุด"? กลายเป็นเรื่องง่ายมาก
หากจอภาพสองจอของคุณไม่ได้มีขนาดเท่ากันการรวมกันของจอภาพสองจอจะไม่เป็นรูปสี่เหลี่ยมผืนผ้าซึ่งทำให้การตัดการเชื่อมต่อกับจอภาพทั้งหมดไม่ซับซ้อน
แต่ฉันสงสัยว่าจะมีบทลงโทษมากมายสำหรับจอภาพหลายจอหากคุณทำผิดพลาดในการตั้งค่าจอภาพเป็นรูปแบบสีที่แตกต่างกันตัวอย่างเช่นหากคุณตั้งค่าจอภาพหนึ่งจอเป็นรูปแบบ 565 และตั้งค่าอื่นเป็น 24bpp
หากจอภาพสองจอไม่ใช้รูปแบบสีเดียวกันโปรแกรมจะถูกบังคับให้ใช้ DIB แทน DDB สำหรับบิตแมปหน้าจอในกรณีที่หน้าต่างถูกย้ายไปยังหน้าต่างที่มีรูปแบบสีที่แตกต่างกัน (หรือแย่กว่านั้นอยู่ในตำแหน่งนั้น จอภาพสองจอที่มีรูปแบบสีต่างกัน) โดยหลักการแล้วโปรแกรมจำเป็นต้องใช้ DIB "เลวร้ายที่สุด" เท่านั้น ตัวอย่างเช่นหากจอภาพหนึ่งคือ 555 และอีกจอภาพหนึ่งคือ 565 ดังนั้น 565 DIB จะพอเพียง อย่างไรก็ตามในทางปฏิบัติโปรแกรมส่วนใหญ่จะถอยกลับไปที่ 24bpp หรือ 32bpp DIB เมื่อเผชิญกับจอภาพที่มีรูปแบบสีที่แตกต่างกัน
(คุณสอบถามว่าจอภาพทั้งหมดมีรูปแบบสีเหมือนกัน
GetSystemMetrics(SM_SAMEDISPLAYFORMAT)
หรือไม่)
เนื่องจากการแปลงรูปแบบเกิดขึ้นเมื่อ DIB ถูก blined ไปยังอุปกรณ์ที่มีรูปแบบสีที่แตกต่างกันบังคับให้โปรแกรมเก็บบิตแมปของมันเป็น DIBs หมายความว่าอย่างน้อยหนึ่งในจอภาพ (และอาจเป็นได้ทั้งสองอย่าง) คุณจะต้องผ่าน การแปลงรูปแบบเมื่อ DIB นั้นถูกวาดลงบนหน้าจอ นอกจากนี้ยังมีการเพิ่มประสิทธิภาพเบ็ดเตล็ดเล็กน้อยซึ่งปิดใช้งานเมื่อไม่ใช่จอภาพของคุณทั้งหมดที่ใช้รูปแบบสีเดียวกันเนื่องจากค่าใช้จ่ายในการใช้ DIBs มีค่ามากกว่าการประหยัดจากการเพิ่มประสิทธิภาพ
ดังนั้นหากคุณยังไม่ได้ไปที่การตั้งค่าการแสดงผลของคุณและตรวจสอบว่าคุณตั้งค่าจอภาพทั้งหมดของคุณเป็นความลึกของสีเดียวกัน หากคุณไม่ทำเช่นนี้การปรับแต่งกราฟิกให้ใหญ่จะหายไป