WEB开发网
开发学院软件开发VC 用VC实现动态改变Windows的显示特性 阅读

用VC实现动态改变Windows的显示特性

 2007-03-15 21:46:00 来源:WEB开发网   
核心提示: 对于系统的显示特性编程,还有一个关键的API函数EnumDisplaySettings()用来获得当前显示驱动所支持的所有显示模式,用VC实现动态改变Windows的显示特性(3),获得当前显示模式可以使用下面的函数:Bool GetCurrentVideoSettings(DEVMODE

对于系统的显示特性编程,还有一个关键的API函数EnumDisplaySettings()用来获得当前显示驱动所支持的所有显示模式。获得当前显示模式可以使用下面的函数:

Bool GetCurrentVideoSettings(DEVMODE *devmode)
{
 HWND hwndDesktop=GetDesktopWindow();
 HDC hdc=GetDC(hwndDesktop);
 devmode -> dmSize =sizeof(DEVMODE);
 devmode -> dmBitsPerPel=GetDeviceCaps(hdc,BITSPIXEL);
 devmode -> dmPelsWidth=GetSystemMetrics(SM_CXSCREEN);
 devmode -> dmPelsHeight=GetSystemMetrics(SM_CYSCREEN);
 devmode -> dmFields=DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT;
 return TRUE;
}

下面的代码展示了如何使用EnumDisplaySettings获得当前支持的所有显示模式:

int modenum,done;
DEVMODE devmode;
done=0;
modenum=0;
do
{
 done=!EnumDisplaySettings(NULL,modenum,&devmode);
 AddToList(&devmode);
 modenum++;
}while (!done);

设置显示模式的方法如下:

rc = ChangeDisplaySettings(&devmode,CDS_FULLSCREEN));这里的devmode就是前面使用EnumDisplaySettings获得的。如果设置正常,返回值DISP_CHANGE_SUCCESSFUL。

二、 编程步骤

1、启动Visual C++6.0,生成一个基于对话框的项目ChngDsplyMd,在对话框上放置三个编辑控件,ID分别命名为ID_EDIT_WIDTH、ID_EDITHEIGHT、ID_EDIT_BITS,为了说明编辑框控件的功能,其中前二个编辑框控件放置在一个标题为"屏幕区域"的组合框中,第三个编辑框控件旁边添加一个STATIC控件,"Caption"设置为"像素位数"。对话框架上的两个按钮控件的"Caption分别设置为"改变分辩率"、"关闭",ID分别定义为IDC_CHANGE、IDOK;

上一页  1 2 3 4  下一页

Tags:VC 实现 动态

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接