我的程序是在1024*768 下设计的,可是在800*600的情况下有些就不能完全显示了,用什么方式,在应用程序启动时,把桌面的分边率高为1024*768,
关闭系统时,又恢复到800*600
关闭系统时,又恢复到800*600
解决方案 »
- delphi webservice 调用报错 急
- longword 型变量怎样才能变成integer,我是用getdiskfreespace取磁盘剩余空间后得到longword后不知道怎么处理
- 有关SPCOMM控件
- 【dll问题】Undeclared identifier: 'Handle'怎么回事?
- 关于远程终端~~~~~~~~~~~~~~~~
- 序列号
- 如何在win2000下,屏蔽系统热键,例如ctrl+ESC,ctrl+alt+del,ctrl+C,ctrl+V,alt+f4等
- 怪了!请进来看看
- DBNavigator1的加记录事件
- 为什么我的FORM不能FREE
- Reportbuilder怎样设置连续打印?
- 两个数据表相关联的问题!急,在线等待!
devmode:tdevicemode;
result:boolean;begin
if enumdisplaysettings(nil,0,devmode)
then
begin
devmode.dmfields:=dm_pelswidth or dm_pelsheight;
devmode.dmpelswidth:=1024;
devmode.dmpelsheight:=768;
changedisplaysettions(devmode,0);
end;
end;然后在主窗体的onclose里同样加上上面的代码,只是将1204和768,改为800和600。
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;