erstellen randloser Fenster mit Aero -Funktionen in qt/c
, das ein randloses Fenster in Fenstern erreicht, kommt mit Einschränkungen wie dem Fehlen von Aero Shadow, dem Fehlen von Aero Shadow, Schnappnahme, Minimierungsanimation und schütteln. Um diese Herausforderung zu überwinden, können wir die Kraft von Spy und die dwmapi -Anrufe nutzen. WindowProc:
case wm_nccalcsize: { if (window-> is_borderless) { Rückkehr 0; } anders { return defwindowproc (hwnd, msg, wparam, lparam); } }
aktivieren aero Shadow
case WM_NCCALCSIZE: {
if (window->is_borderless) {
return 0;
} else {
return DefWindowProc(hwnd, msg, wparam, lparam);
}
}
margins borderess = {1,1,, 1,1}; DwMextendFrameIntoclientArea (hwnd, borderess);
Hinzufügen von Aero Snap, Maximieren und Minimieren von
MARGINS borderless = {1,1,1,1};
DwmExtendFrameIntoClientArea(hwnd, &borderless);
WS_POPUP | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_CAPTION
enthalten:
WS_POPUP | WS_THICKFRAME | WS_MinimizeBox | Ws_maximizeBox | Ws_caption
Vorsicht bezüglich Alpha -Kanaltransparenz
Bei Verwendung von dwMextendframeIntoclientArea können ein kleiner Frame durch transparente Elemente im Kundenbereich sichtbar sein. Erwägen Sie, einen nicht-transparenten Hintergrund oder eine Pinsel zu verwenden.
Beispielprojekt
Ein einfaches Projekt demonstriert die Verwendung dieser Techniken. Wenn Sie F11 drücken, wechselt zwischen dem randlosen und dem Fenstermodus, während F12 den Aero -Schatten ein- und ausschaltet.
schlussfolgern So erstellen Sie randlose Fenster in QT/C mit den gewünschten Aero -Funktionen. Dies bietet eine nahtlose und verbesserte Benutzererfahrung für Ihre Anwendungen.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3