当你在运行一个程序时,总是希望可见的范围越大越好,不要有其他不需要的信息显示在屏幕上,这就涉及到了全屏。
全屏总是一个激动人心的话题。在全屏状态下,我们可以对独占计算机系统资源,提高程序的运行效率。和窗口模式有区别的是,在设置全屏时还必须注意一些事项。
首先,改变显示模式的函数是ChangeDisplaySettings,它是一个标准的Win32函数,其原型如下
LONG ChangeDisplaySettings(
LPDEVMODE lpDevMode, // graphics mode
DWORD dwflags // graphics mode options
);
lpDevMode指向一个描述转变图表的DEVMODE的指针。如果lpDevMode 为空,则程序使用当前注册表中保存的值作为显示模式设置的值。将lpDevMode设置成0,同时将dwFlags设置成0是将显示模式设置成缺省模式的最简单的办法。DEVMODE结构的具体内容如下
typedef struct _devicemode {
BCHAR dmDeviceName[CCHDEVICENAME];
WORD dmSpecVersion;
WORD dmDriverVersion;
WORD dmSize;
WORD dmDriverExtra;
DWORD dmFields;
union {
struct {
short dmOrientation;
short dmPaperSize;
short dmPaperLength;
short dmPaperWidth;
short dmScale;
short dmCopies;
short dmDefaultSource;
short dmPrintQuality;
};
POINTL dmPosition;
DWORD dmDisplayOrientation;
DWORD dmDisplayFixedOutput;
};
short dmColor;
short dmDuplex;
short dmYResolution;
short dmTTOption;
short dmCollate;
BYTE dmFormName[CCHFORMNAME];
WORD dmLogPixels;
DWORD dmBitsPerPel;
DWORD dmPelsWidth;
DWORD dmPelsHeight;
union {
DWORD dmDisplayFlags;
DWORD dmNup;
}
DWORD dmDisplayFrequency;
#if(WINVER >= 0x0400)
DWORD dmICMMethod;
DWORD dmICMIntent;
DWORD dmMediaType;
DWORD dmDitherType;
DWORD dmReserved1;
DWORD dmReserved2;
#if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)
DWORD dmPanningWidth;
DWORD dmPanningHeight;
#endif
#endif /* WINVER >= 0x0400 */
} DEVMODE;
DEVMODE的dmSize参数必须根据DEVMODE结构的大小设置,dmDriveExtra参数必须初始化来显示DEVMODE随后的驱动数据的字节数。另外还可以选用表11-1中的参数。
表11-1
| 结构成员 |
含义 |
| dmBitsPerPel |
个像素的位数 |
| dmPelsWidth |
像素宽度 |
| dmPelsHeight |
像度高度 |
| dmDisplayFlags |
显示模式标志 |
| dmDisplayFrequency |
显示模式刷新频率 |
| dmPosition |
Windows 98/Me, Windows 2000/XP: 设备在多个显示器配置中的位置 |

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/41940.html