[SDK][INCLUDE] layout.h: Use SWP_NOCOPYBITS to refresh controls

This commit is contained in:
Katayama Hirofumi MZ 2021-03-14 12:28:48 +09:00
parent e076e0576f
commit ac507691fb

View file

@ -45,7 +45,7 @@ _layout_MoveGrip(LAYOUT_DATA *pData, HDWP hDwp OPTIONAL)
return hDwp; return hDwp;
SIZE size = { GetSystemMetrics(SM_CXVSCROLL), GetSystemMetrics(SM_CYHSCROLL) }; SIZE size = { GetSystemMetrics(SM_CXVSCROLL), GetSystemMetrics(SM_CYHSCROLL) };
const UINT uFlags = SWP_NOACTIVATE | SWP_NOOWNERZORDER | SWP_NOZORDER; const UINT uFlags = SWP_NOACTIVATE | SWP_NOOWNERZORDER | SWP_NOZORDER | SWP_NOCOPYBITS;
RECT rcClient; RECT rcClient;
GetClientRect(pData->m_hwndParent, &rcClient); GetClientRect(pData->m_hwndParent, &rcClient);
@ -117,7 +117,7 @@ _layout_DoMoveItem(LAYOUT_DATA *pData, HDWP hDwp, const LAYOUT_INFO *pLayout,
{ {
hDwp = DeferWindowPos(hDwp, pLayout->m_hwndCtrl, NULL, NewRect.left, NewRect.top, hDwp = DeferWindowPos(hDwp, pLayout->m_hwndCtrl, NULL, NewRect.left, NewRect.top,
NewRect.right - NewRect.left, NewRect.bottom - NewRect.top, NewRect.right - NewRect.left, NewRect.bottom - NewRect.top,
SWP_NOZORDER | SWP_NOACTIVATE | SWP_NOREPOSITION); SWP_NOZORDER | SWP_NOACTIVATE | SWP_NOREPOSITION | SWP_NOCOPYBITS);
} }
return hDwp; return hDwp;
} }
@ -138,18 +138,6 @@ _layout_ArrangeLayout(LAYOUT_DATA *pData)
hDwp = _layout_MoveGrip(pData, hDwp); hDwp = _layout_MoveGrip(pData, hDwp);
EndDeferWindowPos(hDwp); EndDeferWindowPos(hDwp);
/* STATIC controls need refreshing. */
for (iItem = 0; iItem < pData->m_cLayouts; ++iItem)
{
HWND hwndCtrl = pData->m_pLayouts[iItem].m_hwndCtrl;
WCHAR szClass[8];
GetClassNameW(hwndCtrl, szClass, _countof(szClass));
if (lstrcmpiW(szClass, L"STATIC") == 0)
{
InvalidateRect(hwndCtrl, NULL, TRUE);
}
}
} }
static __inline void static __inline void