Window Create Code:
LPCTSTR lpszClassName = AfxRegisterWndClass(CS_HREDRAW | CS_VREDRAW, AfxGetApp()->LoadStandardCursor(IDC_ARROW),
(HBRUSH)GetStockObject(TRANSPARENT), NULL);
if(PngID)
GdiplusHelper::LoadImageFromResource(m_bkImage, PngID, _T("PNG"));
if(HoverPngID)
GdiplusHelper::LoadImageFromResource(m_hoverImage, HoverPngID, _T("PNG"));
m_Width = m_bkImage.GetWidth();
m_Height = m_bkImage.GetHeight();
BOOL ret = CWnd::Create(lpszClassName, NULL, WS_OVERLAPPED | WS_VISIBLE, CRect(x, y, x + m_Width, y + m_Height), pParentWnd, nID);
ADD_EX_STYLE(GetSafeHwnd(), WS_EX_LAYERED);
Draw Code:
BLENDFUNCTION pb_ = { 0 };
pb_.AlphaFormat = AC_SRC_ALPHA;
pb_.BlendOp = AC_SRC_OVER;
pb_.BlendFlags = 0;
pb_.SourceConstantAlpha = 255;
HDC dc = ::GetDC(GetSafeHwnd());
HDC mem_dc_ = CreateCompatibleDC(dc);
HBITMAP hBitmap = CreateCompatibleBitmap(dc, m_Width, m_Height);
CPoint pt_(0, 0);
CSize size_(m_Width, m_Height);
::SelectObject(mem_dc_, hBitmap);
if (!m_bkImage.IsNull())
m_bkImage.Draw(mem_dc_, 0, 0, m_Width, m_Height);
if (m_isHover)
{
if (!m_hoverImage.IsNull())
m_hoverImage.Draw(mem_dc_, 0, 0, m_Width, m_Height);
}
if (!::UpdateLayeredWindow(GetSafeHwnd(), dc, nullptr, &size_, mem_dc_, &pt_, 0, &pb_, ULW_ALPHA))
{
LOGE("UpdateLayeredWindow err:" << (int)GetLastError() );
//BitBlt(dc, 0, 0, m_Width, m_Height, mem_dc_, 0, 0, SRCCOPY);
goto cleanup;
}
cleanup:
if(mem_dc_)
DeleteDC(mem_dc_);
if(hBitmap)
DeleteObject(hBitmap);
if(dc)
DeleteDC(dc);
In Win10: 
In Win7:
plz help me