예제 #1
0
 // helper for creating an initialized DEVMODE structure
 public static DEVMODE CreateDevmode()
 {
     DEVMODE dm = new DEVMODE();
     dm.dmDeviceName = new String(new char[32]);
     dm.dmFormName = new String(new char[32]);
     dm.dmSize = (short)Marshal.SizeOf(dm);
     return dm;
 }
예제 #2
0
        public void PostData(int id, int data)
        {
            // initialize the DEVMODE structure
            DEVMODE dm = new DEVMODE();
            dm.dmDeviceName = new string(new char[32]);
            dm.dmFormName = new string(new char[32]);
            dm.dmSize = (short)Marshal.SizeOf(dm);

            if (0 != NativeMethods.EnumDisplaySettings(null, NativeMethods.ENUM_CURRENT_SETTINGS, ref dm))
            {
                if (data != last_data)
                {
                    // swap width and height
                    int temp = dm.dmPelsHeight;
                    dm.dmPelsHeight = dm.dmPelsWidth;
                    dm.dmPelsWidth = temp;

                    // determine new orientation
                    switch (data)
                    {
                        case 3:
                            dm.dmDisplayOrientation = NativeMethods.DMDO_270;
                            last_data = data;
                            break;
                        case 2:
                            dm.dmDisplayOrientation = NativeMethods.DMDO_180;
                            last_data = data;
                            break;
                        case 1:
                            dm.dmDisplayOrientation = NativeMethods.DMDO_90;
                            last_data = data;
                            break;
                        case 0:
                            dm.dmDisplayOrientation = NativeMethods.DMDO_DEFAULT;
                            last_data = data;
                            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
                    }
                }
            }
        }
예제 #3
0
 public static extern int ChangeDisplaySettings(ref DEVMODE lpDevMode, int dwFlags);
예제 #4
0
 public static extern int EnumDisplaySettings(string lpszDeviceName, int iModeNum, ref DEVMODE lpDevMode);