如何在Delphi中检测屏幕分辨率的变化?

如何在Delphi中检测屏幕分辨率的变化?,delphi,winapi,screen-resolution,Delphi,Winapi,Screen Resolution,问题很简单。如何在Delphi中检测屏幕分辨率的变化?您只需要检测消息 比如说, TForm1 = class(TForm) private protected procedure WMDisplayChange(var Message: TWMDisplayChange); message WM_DISPLAYCHANGE; { Private declarations } public { Public declarations } end; ... procedu

问题很简单。如何在Delphi中检测屏幕分辨率的变化?

您只需要检测消息

比如说,

TForm1 = class(TForm)
private
protected
  procedure WMDisplayChange(var Message: TWMDisplayChange);
    message WM_DISPLAYCHANGE;
  { Private declarations }

public
  { Public declarations }
end;

...

procedure TForm1.WMDisplayChange(var Message: TWMDisplayChange);
begin
  ShowMessageFmt('The screen resolution has changed to %d×%d×%d.',
    [Message.Width, Message.Height, Message.BitsPerPixel]);
end;

查看与系统指标有关的消息。例如,WM_SystemMetricsChange@David,Sertac的可能重复项:另一个已关闭,因此不应关闭此项。另外,我认为旧的答案是封闭的,而不是这个答案是好的,因为这个答案更好。作为另一个问题的OP,我必须说这个答案确实更好,而且是由同一个人提供的。通过任何搜索字符串查找答案时,重复的答案都非常有用。