Как сделать форму всегда на высоте, даже если активирована 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;

И это результат

Другие вопросы по тегам