gpt4 book ai didi

delphi - 分层 Windows 的系统菜单?

转载 作者:行者123 更新时间:2023-12-03 15:18:06 28 4
gpt4 key购买 nike

Delphi 2009 中的分层窗口和系统菜单存在问题。也就是说,我们的分层窗口(没有边框)没有系统菜单。当我说系统菜单时,我指的是单击应用程序的图标、右键单击其标题栏或(在 Windows 7 中,加上 Shift 键)右键单击任务栏中的应用程序时获得的菜单:

Control Menus

当您尝试访问系统菜单时,例如通过右键单击此类分层窗口的任务栏图标,会升起分层窗口。为什么是这样?是否需要设置某种样式,或者处理某种事件?

这是一个匆忙制作的演示,显示了该问题。不过,它确实可以用任何具有 bsNone 边框样式的形式来重现。

http://ompldr.org/vODd5dw

最佳答案

您需要重新添加已使用 bsNone 边框样式删除的 WS_SYSMENU 样式。

type
TLayeredForm = class(TForm)
procedure FormCreate(Sender: TObject);
protected
procedure CreateParams(var Params: TCreateParams); override;
end;

...

procedure TLayeredForm.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.Style := Params.Style or WS_SYSMENU;
end;

关于delphi - 分层 Windows 的系统菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5627190/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com