Так вроде не мигает, если добавить anti-flickering, что само по-себе полезно при resize:
hWnd = ::CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS,
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
::ShowWindow(hWnd, nCmdShow);
::UpdateWindow(hWnd);
LONG wStyle = ::GetWindowLongPtr(hWnd,GWL_STYLE);
wStyle |= WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_EX_COMPOSITED;
::SetWindowLongPtr(hWnd,GWL_STYLE, wStyle);
wStyle = ::GetWindowLongPtr(hWnd,GWL_EXSTYLE);
wStyle |= WS_EX_COMPOSITED;
::SetWindowLongPtr(hWnd,GWL_EXSTYLE, wStyle);
::SetWindowLongPtr(hWnd, GWL_EXSTYLE, GetWindowLongPtr(hWnd,GWL_EXSTYLE)|WS_EX_LAYERED);
::SetLayeredWindowAttributes( hWnd, 0, 200, LWA_ALPHA);
Кстати, Get/SetWindowLongPtr лучше чем Get/SetWindowLong.
Помогло?
|