Как сделать форму всегда на высоте, даже если активирована Windows 7 Flip 3D
Я создаю приложение, которое должно отображать определенную форму всегда сверху (это запрос клиента), поэтому пока я использую функцию SetWindowPos со значением HWND_TOPMOST, и это прекрасно работает, но когда функция Windows 7 Flip 3D мое приложение не остается в топе.
Windows 7 Flip 3D
Вопрос в том, как моя форма может оставаться поверх всех остальных окон, даже если активирована Windows 7 Flip 3D?
1 ответ
Решение
Я делаю это некоторое время назад, используя DwmSetWindowAttribute
Функция модифицирует атрибут DWMWA_FLIP3D_POLICY значением DWMFLIP3D_EXCLUDEABOVE.
Попробуйте этот код
uses
Winapi.DwmApi;
procedure TForm40.FormCreate(Sender: TObject);
var
pvAttribute: Integer;
begin
pvAttribute:= DWMFLIP3D_EXCLUDEABOVE;
if DwmCompositionEnabled then
DwmSetWindowAttribute(Handle, DWMWA_FLIP3D_POLICY, @pvAttribute, Sizeof(Integer));
end;
И это результат