高手请进,关于显示器分辨率的改变问题

livin 2003-10-30 10:28:58
我用下面这个程序可以将显示器分辨率改变,但是:当我由800*600改到1024*768的时候,任务栏不再屏幕下面了,网上错了1/3。不知道该怎么改。
procedure setscreen(newwidth, newheight, newfrquency:integer);
var
devmode:Tdevicemode;
begin
OldWidth:=GetSystemMetrics(SM_CXSCREEN);
OldHeight:=GetSystemMetrics(SM_CYSCREEN);
if (oldwidth<>newwidth) and (oldheight<>newheight) then
begin
DevMode.dmSize:=sizeof(TDeviceMode);
EnumDisplaySettings(nil, DWORD(-1), DevMode);
DevMode.dmFields:=DM_PELSWIDTH or DM_PELSHEIGHT or DM_DISPLAYFREQUENCY;
DevMode.dmPelsWidth:=NewWidth;
DevMode.dmPelsHeight:=NewHeight;
OldFreq:= DevMode.dmDisplayFrequency;
DevMode.dmDisplayFrequency:=newfrquency;
ChangeDisplaySettings(DevMode,0);
...全文
70 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
workers 2003-11-06
  • 打赏
  • 举报
回复
up
sailer_shi 2003-11-06
  • 打赏
  • 举报
回复

function TForm1.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
getfbl;
if s = Button1.caption then
ShowMessage('Now is 640*480')
else
if DynamicResolution(640, 480) then
ShowMessage('Now is 640*480');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
getfbl;
if s = Button2.Caption then
ShowMessage('Now is 800*600')
else
if DynamicResolution(800, 600) then
showmessage('Now is 800 * 600')
end;


procedure TForm1.Button3Click(Sender: TObject);
begin
getfbl;
if s = button3.caption then
showmessage('Now is 1024*768')
else
if DynamicResolution(1024, 768) then
showmessage('Now is 1024*768');
end;

procedure TForm1.getfbl;
var
x, y:longint;
begin
x := GetSystemMetrics(SM_CXSCREEN);
y := GetSystemMetrics(SM_CYSCREEN);
s := IntToStr(x)+ '*' + IntToStr(y);
end;
livin 2003-11-06
  • 打赏
  • 举报
回复
up
cash2000 2003-10-30
  • 打赏
  • 举报
回复
顶。

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧