屏幕显示(100分)

  • 主题发起人 主题发起人 dingzz
  • 开始时间 开始时间
D

dingzz

Unregistered / Unconfirmed
GUEST, unregistred user!
因我的程序设计在800*600的分辨率下运行的,但公司有的电脑的分辨率是600*480,
还有的是1024*768,因此怎么样能在程序运行时把分辨率设置成800*600,程序退出后还原
成以前的分辨率?
 
这个论坛上早有答案,你自己用全文检索找.
 
[:)]我以前写过一个软件,是在800*600下,但给别人是在600*400下运行,界面变型
可以动态修改显示器分辨率(共参考),可以在main.form1创建和关闭时作为事件处理,不过最好
是让自己的程序适应别人的机器![^]
Windows提供给我们两个API函数,可以动态调整显示器的分辨率,
他们是EnumDisplaySettings() 和ChangeDisplaySettings(),
下面这个例子演示了在两中分辨率之间的变换,并且可以不用重新启动计算机:
function DynamicResolution(X, Y: word): BOOL;
var
lpDevMode: TDeviceMode;
begin
Result := EnumDisplaySettings(nil, 0, lpDevMode);
if Result then
begin
lpDevMode.dmFields := DM_PELSWIDTH Or DM_PELSHEIGHT;
lpDevMode.dmPelsWidth := X;
lpDevMode.dmPelsHeight := Y;
Result := ChangeDisplaySettings(lpDevMode, 0) = DISP_CHANGE_SUCCESSFUL;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if DynamicResolution(640, 480) then
ShowMessage('Now is 640*480');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if DynamicResolution(800, 600) then
ShowMessage('Now is 800*600');
end
 
多人接受答案了。
 
后退
顶部