如何获得和设置显示器在当前分辨率下所有的刷新率?

youngphoneix 2003-08-21 10:07:55
如题,我想程序使用时像windows的显示器设置里那样,
但是我不知道有哪些函数可以实现?
BCB和VC的均可啊。
...全文
172 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
CityHost 2003-08-22
  • 打赏
  • 举报
回复
收集中
Behard 2003-08-21
  • 打赏
  • 举报
回复
设置:
void __fastcall TForm1::Button2Click(TObject *Sender)
{
DEVMODE lpDEVMODE;
lpDEVMODE.dmSize = sizeof ( DEVMODE );
lpDEVMODE.dmPelsWidth = 1024;
lpDEVMODE.dmPelsHeight = 768;
lpDEVMODE.dmDisplayFrequency = 75;
lpDEVMODE.dmFields = DM_PELSWIDTH| DM_PELSHEIGHT| DM_DISPLAYFREQUENCY;

ChangeDisplaySettings ( &lpDEVMODE, 0 );
}
kinglon 2003-08-21
  • 打赏
  • 举报
回复
EnumDisplaySettings
Behard 2003-08-21
  • 打赏
  • 举报
回复
#include <winuser.h>
void __fastcall TForm1::Button1Click(TObject *Sender)
{
DWORD iModeNum = 0;
int dmBitsPerPel = 0;
int dmPelsWidth;
int dmPelsHeight;
DEVMODE lpDEVMODE;
lpDEVMODE.dmSize = sizeof ( DEVMODE );

if ( EnumDisplaySettings ( NULL, ENUM_CURRENT_SETTINGS, &lpDEVMODE) )
{
dmBitsPerPel = lpDEVMODE.dmBitsPerPel;
dmPelsWidth = lpDEVMODE.dmPelsWidth;
dmPelsHeight = lpDEVMODE.dmPelsHeight;
}

while ( EnumDisplaySettings ( NULL, iModeNum++, &lpDEVMODE ) )
{
if ( (dmBitsPerPel == lpDEVMODE.dmBitsPerPel) &&
(dmPelsWidth == lpDEVMODE.dmPelsWidth) &&
(dmPelsHeight == lpDEVMODE.dmPelsHeight) )
ListBox1->Items->Add ( IntToStr(lpDEVMODE.dmDisplayFrequency ) );
}
}
Behard 2003-08-21
  • 打赏
  • 举报
回复
EnumDisplaySettings 函数

604

社区成员

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

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