我们可以通过API用编程的方式切屏,用到的API:ChangeDisplaySettingsEx
旋转90度代码如下:
DEVMODE devmode = {0};
devmode.dmSize = sizeof(DEVMODE);
devmode.dmDisplayOrientation = DMDO_90; //可变 DMDO_0 DMDO_180 DMDO_270
devmode.dmFields = DM_DISPLAYORIENTATION;
ChangeDisplaySettingsEx(NULL, &devmode, NULL, 0, NULL);
取得当前模式的代码如下:
DEVMODE devmode = {0};
devmode.dmSize = sizeof(DEVMODE);
devmode.dmFields = DM_DISPLAYORIENTATION;
ChangeDisplaySettingsEx(NULL, &devmode, 0, CDS_TEST, NULL);
如果你想阻止屏幕的自动切换,就可以在用如下代码完成:
case WM_SIZE:
case WM_SETTINGCHANGE:
{
DEVMODE devmode = {0};
devmode.dmSize = sizeof(DEVMODE);
devmode.dmDisplayOrientation = DMDO_90; //可变 DMDO_0 DMDO_180 DMDO_270
devmode.dmFields = DM_DISPLAYORIENTATION;
ChangeDisplaySettingsEx(NULL, &devmode, NULL, 0, NULL);
}
break;
如果你需要在保留切换的屏幕模式,可以通过设置注册表中
Angle - DWORD (0, 90, 180, 270)
LandscapeMode - DWORD (0,1)
本文介绍如何使用ChangeDisplaySettingsEx API通过编程方式旋转屏幕显示角度,包括90度、180度及270度,并提供了防止屏幕自动切换的代码示例。文中还涉及了如何读取当前显示设置及如何通过修改注册表来保持屏幕旋转状态。
3566

被折叠的 条评论
为什么被折叠?



