Changer la resolution de l'ecran (y compris couleur)


Description

Ce code permet de lire et de modifier la résolution de l'écran. Il envoie un message (SendMessage) aux autres fenêtres, ce qui permet entre autres d'avoir une barre des tâches convenablement redimensionnée et déplacée.

Source / Exemple :


unit mdlChangeRes;

interface

uses Windows;
  
function GetResX():integer;
function GetResY():integer;
function GetNbCoul():integer;
function SetRes(const ResX,ResY,NbCoul:integer):integer;

implementation

function GetResX():integer;
var
  DM:_devicemodeA;
begin
  EnumDisplaySettings('',uint(-1),DM);
  Result:=DM.dmPelsWidth;
end;

function GetResY():integer;
var
  DM:_devicemodeA;
begin
  EnumDisplaySettings('',uint(-1),DM);
  Result:=DM.dmPelsHeight;
end;

function GetNbCoul():integer;
var
  DM:_devicemodeA;
begin
  EnumDisplaySettings('',uint(-1),DM);
  Result:=DM.dmBitsPerPel;
end;

function SetRes(const ResX,ResY,NbCoul:integer):integer;
var
  DM:_devicemodeA;
begin
  EnumDisplaySettings('',uint(-1),DM);
  DM.dmFields:=0;
  if (ResX<>DM.dmPelsWidth) then DM.dmFields:=DM_PELSWIDTH;
  if (ResY<>DM.dmPelsHeight) then DM.dmFields:=(DM.dmFields or DM_PELSHEIGHT);
  if (NbCoul<>DM.dmBitsPerPel) then DM.dmFields:=(DM.dmFields or DM_BITSPERPEL);
  if (DM.dmFields<>0) then begin
    DM.dmPelsWidth:=ResX;
    DM.dmPelsHeight:=ResY;
    DM.dmBitsPerPel:=NbCoul;
    if (ChangeDisplaySettings(DM,CDS_UPDATEREGISTRY)=DISP_CHANGE_SUCCESSFUL) then begin
      SendMessage($FFFF,$1B,0,0);
      SendMessage($FFFF,$7E,NbCoul,(ResX + $10000 * ResY));
      Result:=0;
    end else Result:=1;
  end;
end;

end.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.