memerlukan pemahaman nuanced mengenai konfigurasi paparan sistem dan konsep skrin maya. SetWindowPos
Konfigurasi paparan sistem:
Asal monitor utama ialah (0, 0). Monitor sekunder mempunyai koordinat x negatif (kiri utama) atau koordinat x positif (kanan primer).
Skrin maya:
Ini adalah paparan konseptual yang merangkumi semua monitor yang berkaitan. Asalnya adalah sudut kiri atas monitor paling kiri. Lebarnya adalah jumlah semua lebar monitor, dan ketinggiannya adalah ketinggian monitor tertinggi.mendapatkan maklumat paparan sistem
memanfaatkan kelas : Screen
menawarkan kaedah untuk mendapatkan maklumat skrin penting: Screen
Screen.FromHandle(hwnd)
Screen.GetBounds(rect)
Screen.DeviceName
menggunakan fungsi Win32 asli:
Fungsi ini menyediakan kaedah alternatif untuk pengenalpastian monitor:
MonitorFromWindow
MonitorFromPoint
MonitorFromRect
SetWindowPos
, ikuti langkah -langkah berikut: SetWindowPos
Kenal pasti monitor sasaran: Dapatkan pemegang pemantauan yang dikehendaki menggunakan kaedah yang diterangkan di atas. hMonitor
Kirakan koordinat skrin maya: Laraskan koordinat x tetingkap berdasarkan kedudukan monitor berbanding dengan monitor utama. Kurangkan jumlah lebar monitor terdahulu bagi mereka yang berada di sebelah kiri utama, dan tambahkan jumlah lebar monitor terdahulu dan yang utama bagi mereka di sebelah kanan.
Gunakan : SetWindowPos
Gunakan koordinat skrin maya yang dikira dalam panggilan : SetWindowPos
<code class="language-c++">SetWindowPos(hwnd, hWndInsertAfter, x, y, cx, cy, SWP_NOZORDER | SWP_NOSIZE | SWP_SHOWWINDOW);</code>
Dengan berhati-hati memandangkan susunan paparan sistem dan menggunakan teknik ini, anda boleh meletakkan tingkap dengan tepat pada mana-mana monitor dalam persediaan pelbagai monitor menggunakan SetWindowPos
.
Atas ialah kandungan terperinci Bagaimanakah saya boleh meletakkan tingkap dengan tepat merentasi pelbagai monitor menggunakan setWindowpos?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!