Delphi实现动态修改显示器分辨率

Delphi实现动态修改显示器分辨率,第1张

Delphi实现动态修改显示器分辨率,第2张


在程序中添加自定义函数DynamicResolution。它有两个参数,分别对应水平和垂直方向的分辨率,函数有一个BOOL类型的返回值。通过判断返回值,可以判断DynamicResolution函数执行是否正确。DynamicResolution函数代码如下:

函数TfrmMain。DynamicResolution(X,Y:word):BOOL;
var
lpDevMode:TDeviceMode;
begin
Result:= EnumDisplaySettings(nil,0,lpDevMode);
if Result then
begin
lpdevmode . DM fields:= DM _ pels width或DM _ PELSHEIGHT
lpdevmode . dmpelswidth:= X;
lpdevmode . dmpelsheight:= Y;
Result:= ChangeDisplaySettings(lpDevMode,0)= DISP _变化_成功;
end;
end;

在程序运行过程中,调用DynamicResolution(640,480)或DynamicResolution(800,600),通过点击表单上的两个按钮“640*480”和“800*600”来修改分辨率。

程序首先通过EnumDisplaySettings获取当前屏幕的分辨率,存储在变量lpDevMode中,然后将lpDevMode设置为新的分辨率,最后通过ChangeDisplaySettings函数完成动态修改显示分辨率的具体操作。

程序代码如下:

unit Unit1
接口

使用
窗口、消息、系统工具、变体、类、图形、控件、表单、
对话框、StdCtrls。

type
TfrmMain = class(t form)
BTN 800600:TButton;
BTN 640480:t button;
procedure btn640480Click(发件人:to object);
procedure btn800600Click(发件人:to object);
私有
{私有声明}
公共
{公共声明}
函数DynamicResolution(X,Y:word):BOOL;
end;

var
frm main:TfrmMain;
实现
{$R *。dfm}

函数TfrmMain。DynamicResolution(X,Y:word):BOOL;
var
lpDevMode:TDeviceMode;
begin
Result:= EnumDisplaySettings(nil,0,lpDevMode);
if Result then
begin
lpdevmode . DM fields:= DM _ pels width或DM _ PELSHEIGHT
lpdevmode . dmpelswidth:= X;
lpdevmode . dmpelsheight:= Y;
Result:= ChangeDisplaySettings(lpDevMode,0)= DISP _变化_成功;
end;
end;

过程TfrmMain.btn640480Click(发件人:to object);
begin
如果动态分辨率(640,480)则
begin
显示消息('当前分辨率为640 * 480 ');
end;
end;

过程TfrmMain.btn800600Click(发送方:to object);
begin
如果动态分辨率(800,600)则
begin
显示消息('当前分辨率为800 * 600 ');
end;
end;

结束。

保存文件,然后按F9运行程序

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » Delphi实现动态修改显示器分辨率

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情