• WM下代码实现转屏


    在WM下用户可以经常转屏,但是这个也能通过代码实现,下面是一个经过测试的代码。

    int ChangeDisplaySettings( )


        DEVMODE DevMode; 
        int RotationAngles = 0; 
        int CurrentAngle = 0; 
        int NewAngle = 0; 

        //Check for rotation support by getting the rotation angles supported. 
        memset( &DevMode, 0, sizeof( DevMode ) ); 
        DevMode.dmSize = sizeof( DevMode ); 
        DevMode.dmFields = DM_DISPLAYQUERYORIENTATION; 

        if( DISP_CHANGE_SUCCESSFUL == ChangeDisplaySettingsEx( NULL, &DevMode, NULL, CDS_TEST, NULL ) ) 
        { 
            RotationAngles = DevMode.dmDisplayOrientation; 
        } 
        else 
        { 
            RotationAngles = -1; 
        } 

        //Get the current rotation angle. 
        memset( &DevMode, 0, sizeof( DevMode ) ); 
        DevMode.dmSize = sizeof( DevMode ); 
        DevMode.dmFields = DM_DISPLAYORIENTATION; 

        if( DISP_CHANGE_SUCCESSFUL ==  ChangeDisplaySettingsEx( NULL, &DevMode, NULL, CDS_TEST, NULL ) ) 
        { 
            CurrentAngle = DevMode.dmDisplayOrientation; 
        } 
        else 
        {   
            CurrentAngle = -1; 
        } 

        //Rotate to the "next " angle. 
        if   ( ( CurrentAngle >= 0 ) && ( RotationAngles >= 0 ) ) 
        { 
            NewAngle = CurrentAngle; 
            do 
            { 
                NewAngle <<= 1; 

                if( DMDO_0 == NewAngle ) 
                { 
                    NewAngle = DMDO_270; 
                } 

                if( NewAngle > DMDO_270 ) 
                { 
                    NewAngle = DMDO_0; 
                } 
            }   while ( !( NewAngle & RotationAngles) && ( NewAngle != DMDO_0 ) ); 

            memset( &DevMode, 0, sizeof( DevMode ) ); 
            DevMode.dmSize = sizeof( DevMode ); 
            DevMode.dmFields =  DM_DISPLAYORIENTATION; 
            DevMode.dmDisplayOrientation = NewAngle; 

            if( DISP_CHANGE_SUCCESSFUL == ChangeDisplaySettingsEx( NULL, &DevMode, NULL, CDS_RESET, NULL ) ) 
            { 
            } 
            else 
            {
            } 
        } 

        return   0; 

    }

  • 相关阅读:
    在C#程序中模拟发送键盘按键消息
    C# UDPCLIENT多线程实例
    【转】WINFORM下FTP客户端的实现
    抓取屏幕或窗体并保存成图片
    c# 判断窗体已打开则显示为焦点
    【转】C#中dataGridView用法实例分析
    【转】VC6控件小记
    .Net部署二三事之一——如何为VS安装文件MSI制作更新补丁MSP
    [转]C#串口serialPort操作
    VS向IIS发布C#或VB应用程序
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/2458394.html
Copyright © 2020-2023  润新知