科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件以编程方式更改屏幕方向(3)

以编程方式更改屏幕方向(3)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文描述如何以编程方式更改显示设备的方向、分辨率及其他方面。相应示例采用C

作者:Stefan Wick 来源:51CTO.com 2007年9月1日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

在 C# 中旋转屏幕

以下 C# 代码将前面讨论的技术结合起来,并展示了如何在托管代码中顺时针旋转屏幕。请注意,这段代码只对支持相应显示设置的设备起作用。

// initialize the DEVMODE structure

DEVMODE dm = new DEVMODE();

dm.dmDeviceName = new string(new char[32]);

dm.dmFormName = new string(new char[32]);

dm.dmSize = Marshal.SizeOf(dm);

if (0 != NativeMethods.EnumDisplaySettings(

null,

NativeMethods.ENUM_CURRENT_SETTINGS,

ref dm))

{

// swap width and height

int temp = dm.dmPelsHeight;

dm.dmPelsHeight = dm.dmPelsWidth;

dm.dmPelsWidth = temp;

// determine new orientation

switch(dm.dmDisplayOrientation)

{

case NativeMethods.DMDO_DEFAULT:

dm.dmDisplayOrientation = NativeMethods.DMDO_270;

break;

case NativeMethods.DMDO_270:

dm.dmDisplayOrientation = NativeMethods.DMDO_180;

break;

case NativeMethods.DMDO_180:

dm.dmDisplayOrientation = NativeMethods.DMDO_90;

break;

case NativeMethods.DMDO_90:

dm.dmDisplayOrientation = NativeMethods.DMDO_DEFAULT;

break;

default:

// unknown orientation value

// add exception handling here

break;

}

int iRet = NativeMethods.ChangeDisplaySettings(ref dm, 0);

if (NativeMethods.DISP_CHANGE_SUCCESSFUL != iRet)

{

// add exception handling here

}

}

小结

◆使用 EnumDisplaySettings API 来获取当前显示设置的相关信息。 

◆使用 EnumDisplaySettings API 来枚举所有受支持的显示设置。 

◆DEVMODE 结构包含关于给定的显示模式的所有信息。 

◆使用 ChangeDisplaySettings 来切换到由有效的 DEVMODE 结构指定的新显示模式。 

◆使用平台调用服务从托管代码实现。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章