Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah Aplikasi Qt/C Boleh Mencapai Windows Tanpa Sempadan dengan Aero Snap, Shadow dan Animasi?

Bagaimanakah Aplikasi Qt/C Boleh Mencapai Windows Tanpa Sempadan dengan Aero Snap, Shadow dan Animasi?

Linda Hamilton
Linda Hamiltonasal
2024-10-26 01:53:02814semak imbas

How Can Qt/C   Applications Achieve Borderless Windows with Aero Snap, Shadow, and Animations?

Mencipta Windows Tanpa Sempadan dengan Areo Snap, Shadow dan Animation dalam Qt/C

Dalam Windows, tetingkap tanpa sempadan disertakan dengan kompromi: kehilangan ciri seperti Aero shadow, snap, dan animasi pengecilan. Walau bagaimanapun, mereplikasi pengalaman lancar yang dilihat dalam aplikasi seperti Office 2013 dan Steam boleh dilakukan dengan memanfaatkan API Windows.

Sembunyikan Sempadan

Untuk menyembunyikan sempadan tetingkap, pintasan mesej WM_NCCALCSIZE dalam prosedur tetingkap.

<code class="cpp">case WM_NCCALCSIZE: {
    if (window->is_borderless) {
        return 0;
    } else {
        return DefWindowProc(hwnd, msg, wparam, lparam);
    }
}</code>

Dayakan Aero Shadow

Untuk memaparkan bayang bercahaya di sekeliling tingkap, gunakan fungsi DwmExtendFrameIntoClientArea.

<code class="cpp">MARGINS borderless = {1,1,1,1};
DwmExtendFrameIntoClientArea(hwnd, &borderless);</code>

Dayakan Ciri Tambahan

Memerhati gelagat tetingkap tanpa sempadan seperti Steam, kita boleh menentukan bahawa bayang berfungsi paling baik dengan gaya tetingkap WS_POPUP | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_CAPTION. Gaya ini juga membolehkan Aero snap, memaksimumkan dan animasi minimize yang licin.

Nota Tambahan

  • Bayang-bayang mungkin boleh dilihat melalui elemen lutsinar dalam kawasan pelanggan , memerlukan widget atau berus yang tidak telus di belakang.
  • Nilai DWMWA_NCRENDERING_POLICY dan DWMWA_ALLOW_NCPAINT dalam DwmSetWindowAttribute biasanya tidak diperlukan.

Contoh Projek>Untuk demonstrasi praktikal, muat turun contoh projek yang disediakan. Menekan F11 menogol antara mod tanpa sempadan dan mod bertingkap, manakala F12 mengaktifkan atau menyahaktifkan bayang tanpa sempadan.

Atas ialah kandungan terperinci Bagaimanakah Aplikasi Qt/C Boleh Mencapai Windows Tanpa Sempadan dengan Aero Snap, Shadow dan Animasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn