我正在构建一个需要始终在顶部显示特定表单的应用程序(这是客户请求),到目前为止,我正在使用具有 HWND_TOPMOST 值的SetWindowPos函数,并且工作正常,但是当 Windows 7 Flip 3D 功能已激活我的应用程序不会保持在顶部。
Windows 7 翻转 3D
问题是,即使激活了 Windows 7 Flip 3D,我的表单如何保持在所有其他窗口的顶部?
我正在构建一个需要始终在顶部显示特定表单的应用程序(这是客户请求),到目前为止,我正在使用具有 HWND_TOPMOST 值的SetWindowPos函数,并且工作正常,但是当 Windows 7 Flip 3D 功能已激活我的应用程序不会保持在顶部。
Windows 7 翻转 3D
问题是,即使激活了 Windows 7 Flip 3D,我的表单如何保持在所有其他窗口的顶部?
前段时间,我使用修改DWMWA_FLIP3D_POLICY属性和DWMFLIP3D_EXCLUDEABOVE值的DwmSetWindowAttribute
函数来执行此操作。
试试这个代码
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;
这就是结果