This commit is contained in:
朱子楚\zhuzi 2024-03-15 22:00:47 +08:00
parent 3f7555d4e6
commit 2d2f991128
3 changed files with 27 additions and 2 deletions

View File

@ -34,6 +34,26 @@ static inline bool isCompositionEnabled(){
}
return false;
}
static inline void showShadow(HWND hwnd){
if(isCompositionEnabled()){
const MARGINS shadow = { 0, 0, 1, 0 };
typedef HRESULT (WINAPI* DwmExtendFrameIntoClientAreaPtr)(HWND hWnd, const MARGINS *pMarInset);
HMODULE module = LoadLibraryW(L"dwmapi.dll");
if (module)
{
DwmExtendFrameIntoClientAreaPtr dwm_extendframe_into_client_area_;
dwm_extendframe_into_client_area_= reinterpret_cast<DwmExtendFrameIntoClientAreaPtr>(GetProcAddress(module, "DwmExtendFrameIntoClientArea"));
if (dwm_extendframe_into_client_area_)
{
dwm_extendframe_into_client_area_(hwnd, &shadow);
}
}
}else{
ULONG_PTR cNewStyle = GetClassLongPtr(hwnd, GCL_STYLE) | CS_DROPSHADOW;
SetClassLongPtr(hwnd, GCL_STYLE, cNewStyle);
}
}
#endif
FramelessEventFilter::FramelessEventFilter(FluFramelessHelper* helper){
@ -322,6 +342,9 @@ void FluFramelessHelper::componentComplete(){
_appBar.value<QObject*>()->setProperty("systemMoveEnable",false);
}
window->setFlags((window->flags()) | Qt::CustomizeWindowHint | Qt::WindowMinimizeButtonHint | Qt::WindowCloseButtonHint | Qt::FramelessWindowHint);
if(FluTools::getInstance()->isSoftware() && QT_VERSION < QT_VERSION_CHECK(6, 0, 0)){
window->setFlag(Qt::FramelessWindowHint,false);
}
if(resizeable()){
window->setFlag(Qt::WindowMaximizeButtonHint);
}

View File

@ -20,6 +20,7 @@ Item {
d.flag = false
}
}
clip: true
Rectangle{
id:layout_header
width: parent.width
@ -79,10 +80,10 @@ Item {
topMargin: -1
left: layout_header.left
}
clip: true
visible: contentHeight+container.anchors.topMargin !== 0
height: contentHeight+container.anchors.topMargin
width: parent.width
z:-999
Rectangle{
id:container
anchors.fill: parent

View File

@ -20,6 +20,7 @@ Item {
d.flag = false
}
}
clip: true
Rectangle{
id:layout_header
width: parent.width
@ -79,10 +80,10 @@ Item {
topMargin: -1
left: layout_header.left
}
clip: true
visible: contentHeight+container.anchors.topMargin !== 0
height: contentHeight+container.anchors.topMargin
width: parent.width
z:-999
Rectangle{
id:container
anchors.fill: parent