发新话题
打印

Delphi动态调整LCD分辨率

Delphi动态调整LCD分辨率

Delphi动态调整显示器分辨率
% b) `4 I3 [8 |0 R. d8 p2 iDelphi提供了可以动态改变屏幕分辨率的函数,分别是EnumDisplaySettings()和ChangeDisplaySettings()。有了它们,编程时可以随时改变分辨率以适应要求。下面的CRTReset函数能方便实现这一功能:
4 s: s; z. P) g
6 k) A* _& ~3 u( U  implementation
' X3 w1 E' o% d) k! _: q* ]  function CRTReset(X, Y: Word): Boolean;
1 ], s% l/ X2 O9 _  j  var2 q2 \0 S2 y0 g, R
   lpDevMode: TDeviceMode;- R, t+ D, @, f! f8 E- a
  begin) A! |7 b9 K2 ~- @
   Result:= EnumDisplaySettings(nil, 0, lpDevMode); //获取显示模式+ n  j  ]- X% F& v3 z
   if Result then begin
( J$ Z" a; H7 U  f; `1 _% K; K! M$ U  lpDevMode.dmFields := DM_PELSWID
) f, [3 ~1 A" |( a9 P  TH Or DM_PELSHEIGHT;7 b/ F  Z- d% w; |
  lpDevMode.dmPelsWidth := X;
- _! e' J3 y) j/ H2 m  lpDevMode.dmPelsHeight := Y; //设置屏幕的宽度和高度  J4 u+ }2 {) ]% u, g$ Q/ u
  Result:= ChangeDisplaySettings(lpDevMode, 0) = DISP_CHANGE_SUCCESSFUL;
. o4 {8 Q" y' b/ [% ?$ W, }   //改变屏幕分辨率并返回成功与否6 H* q: i4 O' A4 L
  end;# M- u+ G* _) `/ s) Z, B

. i! I0 ]3 n; ?1 D6 E  end;
' K4 [3 Q: U8 f& }0 C) s) S# b0 s# A5 N! p" u
  procedure TForm1.Button1Click(Sender: TObject);0 R7 q$ b8 L" g% b* l+ I. m: [- c
  begin
- M- A" }7 w$ c# `! H: D  if CRTReset(800, 600) then ShowMessage('Now is 800*600'); //调用函数,设置分辨率为800×600
" A( |) D' ]! d- \* \% }' i( U  end;

TOP

謝謝樓主分享,坐個沙發

TOP

发新话题
手机号码所在地查询:
Google
IP地址: