打印本文 打印本文  关闭窗口 关闭窗口  
用CB动态改变显示器分辨率
作者:佚名  文章来源:不详  点击数  更新时间:2008/4/18 14:38:38  文章录入:杜斌  责任编辑:杜斌

void __fastcall TForm1::btnGetClick(TObject *Sender)
{
  int x,y;
  x = GetSystemMetrics(SM_CXSCREEN);
  y = GetSystemMetrics(SM_CYSCREEN);
  ShowMessage("显示器水平分辨率:" + AnsiString(x) + "\n\n显示器垂直分辨率:" + AnsiString(y));

}
//---------------------------------------------------------------------------
void __fastcall TForm1::DynamicResolution(int x,int y)
{
  TDeviceMode  lpDevMode;
  bool Result; 

  Result = EnumDisplaySettings(NULL,0,&lpDevMode);
  if (Result)
  {
        lpDevMode.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT;
        lpDevMode.dmPelsWidth = x;
        lpDevMode.dmPelsHeight = y;
        Result = ChangeDisplaySettings(&lpDevMode,0);
        // = DISP_CHANGE_SUCCESSFUL;
  }
}
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
  DynamicResolution(800,600);        
}
//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn2Click(TObject *Sender)
{
  DynamicResolution(1024,768);        
}  
打印本文 打印本文  关闭窗口 关闭窗口