怎样调整显示器属性?(100分)

  • 主题发起人 主题发起人 李捷
  • 开始时间 开始时间

李捷

Unregistered / Unconfirmed
GUEST, unregistred user!
我要将显示器属性由800*600调整为1024*768(颜色设置均为24位真彩色),用以下代码运行后,颜色却变为
256色了,这是什么原因?应该怎样解决?

var DispMode:devmode;
Disper:lpctstr
begin
EnumDisplaySettings(Disper,5,DispMode);
ChangeDisplaySettings(DispMode,CDS_UPDATEREGISTRY);
end;
 
function ChangeDisp(AWidth, AHeight: Integer; Bits: Integer): LongInt;
var
DevMode: TDevMode;
begin
Result := -6;
if EnumDisplaySettings(nil, 0, DevMode) then
begin
with DevMode do
begin
dmBitsPerPel := Bits;
dmPelsWidth := AWidth;
dmPelsHeight := AHeight;
dmFields := DM_PELSWIDTH or DM_PELSHEIGHT or DM_BITSPERPEL;
end;
Result := ChangeDisplaySettings(DevMode, CDS_UPDATEREGISTRY);
end;
end;
 
if screen.width<>800 then
begin
j:=0;
while devmode.dmpelswidth<>800 do
begin
EnumDisplaySettings(nil,j,devmode);
j:=j+1;
end;
EnumDisplaySettings(nil,j-1,devmode);
ChangeDisplaySettings(devmode,0); {更改设置}
devmode.dmfields:=dm_pelswidth OR dm_pelsheight ;
ChangeDisplaySettings(devmode,0); {更改设置}
end;
 
谢谢两位的回答。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
748
import
I
I
回复
0
查看
594
import
I
后退
顶部