【发布时间】:2025-11-30 15:20:04
【问题描述】:
我刚刚在 Delphi 7 中创建了一个small app here,它模拟了默认系统图标,如音量、电池、时钟、网络。
我正在尝试在http://msdn.microsoft.com/en-us/library/aa511448.aspx#flyouts这里遵循所有 Microsoft 建议
为了让一个窗口看起来像一个弹出窗口,我使用了这个代码:
//declaration
TForm1 = class(TForm)
protected
procedure CreateParams(var Params: TCreateParams); override;
end;
实现
procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.Style := WS_POPUP or WS_THICKFRAME;
Params.ExStyle := Params.ExStyle or WS_EX_TOPMOST;
end;
我的问题是 WS_THICKFRAME 允许用户调整窗口大小。我该如何解决这个问题?
【问题讨论】:
-
是的,WS_THICKFRAME 可以调整大小。 WS_BORDER 就够了,Aero 也让它变胖了。
-
您可以使用Spy++之类的工具来确定窗口样式的值和
Battery Meter窗口的扩展样式,然后将这些值应用到Params.Style和Params.ExStyle -
@RRUZ 我在发帖之前已经尝试过了,但没有成功。样式:0x94800000 ExStyle:0x00000008 但之后我的窗口不可见。 img641.imageshack.us/img641/5403/prtscrcapturen.jpg
-
@Hans Passant:如果这是解决方案,请将您的评论作为答案。
-
我发现如果你在设计时给表单 BorderStyle:=bsNone 窗口不是很大的。
标签: delphi winapi windows-7 resizable flyout