Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mencipta Windows Tanpa Sempadan dengan Ciri Aero Lanjutan dalam Windows?
Melaksanakan Tetingkap Tanpa Sempadan dengan Ciri Aero Terperinci dalam Windows
Mencipta tetingkap tanpa sempadan dengan ciri lanjutan seperti Aero Snap, bayang, animasi peminimuman dan goncang kefungsian boleh mencabar. Artikel ini membentangkan penyelesaian yang meniru gelagat aplikasi seperti Office 2013, Visual Studio 2012 dan Steam.
MENYEMBUNYIKAN SEMPADAN TETIngkap
Untuk menyembunyikan sempadan tetingkap, balas mesej WM_NCCALCSIZE dan kembalikan 0 jika tetingkap ditetapkan sebagai tanpa sempadan.
<code class="C++">case WM_NCCALCSIZE: { if (window->is_borderless) { return 0; } else { return DefWindowProc(hwnd, msg, wparam, lparam); } }</code>
MENAMBAH BAYANG AERO
Dayakan bayang dengan memanjangkan bingkai ke dalam kawasan pelanggan menggunakan DwmExtendFrameIntoClientArea:
<code class="C++">MARGINS borderless = {1,1,1,1}; DwmExtendFrameIntoClientArea(hwnd, &borderless);</code>
MENGKONFIGURASI GAYA TETIngkap
Untuk memastikan bayangan dan ciri lain berfungsi dengan betul, gaya tetingkap hendaklah termasuk WS_POPUP | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_CAPTION.
KAVEAT DAN PETUA
DwmExtendFrameIntoClientArea boleh menyebabkan bingkai muncul dalam kawasan klien apabila melukis imej dengan saluran alfa. Untuk menyelesaikan masalah ini, letakkan widget atau berus tidak telus di belakang elemen lutsinar.
+-----------------+ | | |XXXXXXXXXXXXXXXX| | X | | X | | X | | XXXXX| | | | | +-----------------+
KESIMPULAN
Dengan mengikuti langkah ini, pembangun boleh mencipta tetingkap tanpa sempadan dengan Aero Snap, bayang, animasi pengecilan, dan fungsi goncang. Contoh projek yang disediakan menunjukkan pelaksanaan ciri ini.
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Windows Tanpa Sempadan dengan Ciri Aero Lanjutan dalam Windows?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!