如何修改显示器分辨率

原创 2004年10月18日 00:53:00

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Runtime.InteropServices;

namespace ScreenResolution
{

  public class Form1 : System.Windows.Forms.Form
  {
    public enum DMDO
    {
      DEFAULT = 0,
      D90 = 1,
      D180 = 2,
      D270 = 3
    }

    [StructLayout(LayoutKind.Sequential, CharSet=CharSet.Auto)]
      struct DEVMODE
    {
      public const int DM_DISPLAYFREQUENCY = 0x400000;
      public const int DM_PELSWIDTH = 0x80000;
      public const int DM_PELSHEIGHT = 0x100000;
      private const int CCHDEVICENAME = 32;
      private const int CCHFORMNAME = 32;

      [MarshalAs(UnmanagedType.ByValTStr, SizeConst=CCHDEVICENAME)]
      public string dmDeviceName;
      public short dmSpecVersion;
      public short dmDriverVersion;
      public short dmSize;
      public short dmDriverExtra;
      public int dmFields;

      public int dmPositionX;
      public int dmPositionY;
      public DMDO dmDisplayOrientation;
      public int dmDisplayFixedOutput;

      public short dmColor;
      public short dmDuplex;
      public short dmYResolution;
      public short dmTTOption;
      public short dmCollate;
      [MarshalAs(UnmanagedType.ByValTStr, SizeConst=CCHFORMNAME)]
      public string dmFormName;
      public short dmLogPixels;
      public int dmBitsPerPel;
      public int dmPelsWidth;
      public int dmPelsHeight;
      public int dmDisplayFlags;
      public int dmDisplayFrequency;
      public int dmICMMethod;
      public int dmICMIntent;
      public int dmMediaType;
      public int dmDitherType;
      public int dmReserved1;
      public int dmReserved2;
      public int dmPanningWidth;
      public int dmPanningHeight;
    }

    [DllImport("user32.dll", CharSet=CharSet.Auto)]
      //static extern int ChangeDisplaySettings( DEVMODE lpDevMode,  int dwFlags);

    static extern int ChangeDisplaySettings( [In] ref DEVMODE lpDevMode,  int dwFlags);
    private System.ComponentModel.Container components = null;
    public Form1()
    {
      InitializeComponent();
    }
    protected override void Dispose( bool disposing )
    {
      if( disposing )
      {
        if (components != null)
        {
          components.Dispose();
        }
      }
      base.Dispose( disposing );
    }

    #region Windows Form Designer generated code
    private void InitializeComponent()
    {
      this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
      this.ClientSize = new System.Drawing.Size(292, 273);
      this.Text = "改变屏幕分辨率的例子";

    }
    #endregion

    static void Main()
    {
      Form1 r = new Form1();
      r.ChangeRes();
      Application.Run(new Form1());
    }

    void ChangeRes()
    {
      Form1 t = new Form1();
      long RetVal=0;
      DEVMODE dm = new DEVMODE();
      dm.dmSize= (short)Marshal.SizeOf(typeof(DEVMODE));
      dm.dmPelsWidth = 1024;
      dm.dmPelsHeight= 768;
      dm.dmDisplayFrequency=85;
      dm.dmFields = DEVMODE.DM_PELSWIDTH | DEVMODE.DM_PELSHEIGHT | DEVMODE.DM_DISPLAYFREQUENCY;
      RetVal = ChangeDisplaySettings(ref dm, 0);
    }
  }
}

修改监视器驱动为大显示器来提高屏幕分辨率

WIn7里面可以通过修改显示设置- 监视器驱动为大显示器来提高分辨率选项吗?把显示器变成一个镜头,可以再大桌面移动那种的?是这样的,在XP里面可以通过修改监视器 驱动 (桌面右键) 设置>监视器>属性...
  • dj0379
  • dj0379
  • 2011年07月05日 12:55
  • 7543

ubuntu 外接屏幕分辨率调整

Ubuntu外界屏幕分辨率调整 基本情况 修改分辨率 执行cvt命令 执行newmode命令 执行addmode命令 执行output命令 参考基本情况ubuntu自带了 xrandr,它是一款官方的...
  • u012336923
  • u012336923
  • 2016年05月21日 01:31
  • 2527

解决Mac外接显示器分辨率不正确问题

TAT: 今天被坑惨了,重新安装了Mavericks后,使用thunderbolt转VGA外接显示器时遇到了分辨率的问题:外接显示器支持1080P的分辨率,但在OS X的Display设置中只能...
  • baidu_25743639
  • baidu_25743639
  • 2016年06月27日 18:00
  • 12532

MFC调整屏幕分辨率

MFC编辑的界面是按照一定的分辨率编辑的,当窗口大小改变时,控制栏对话框的大小固定。当屏幕分辨率小于界面编辑的分辨率时,一部分控制栏对话框不可见。 一种方法是缩小所有基于此对话框的控件,包括字体。控...
  • leaf6094189
  • leaf6094189
  • 2011年03月09日 15:18
  • 5120

Ubuntu 调整扩展显示器的分辨率

由于工作原因,需要经常输出各种信号格式的 HDMI 信号,而 HDMI generator 价格昂贵,对于我们公司来说是稀缺资源,所以多数情况下直接使用笔记本作为 HDMI generator。最简...
  • tidyjiang
  • tidyjiang
  • 2017年04月30日 20:41
  • 955

多显示器编程--获取所有显示器的分辨率

最近需要在windows下进行多显示器编程,问题是:怎么样获取所有的显示器的分辨率(比如:有三个显示器M1、M2、M3,如何分别取得它们三个的分辨率) 下面是一些网友讨论的记录: ...
  • u012330231
  • u012330231
  • 2016年02月25日 08:49
  • 1497

利用windows API更改显示器的分辨率和更改双屏的显示模式

//更改显示屏的分辨率 DEVMODE dmScreenSettings; memset(&dmScreenSettings,0,sizeof(dmScreenSettings));   dmScr...
  • IT_ZB
  • IT_ZB
  • 2016年05月31日 17:12
  • 2209

Deepin系统扩展分辨率

最近安装了新的deepin系统,但在分辨率问题上纠结了好久,现在记录下解决方法,供大家参考。 我使用的是联想笔记本外接一个1920x1080屏幕,但系统无法支持1920x1080的分辨率。查了很多资料...
  • smilematch
  • smilematch
  • 2016年01月08日 14:11
  • 6275

未知显示器设置屏幕分辨率和屏幕扩展设置

今天用屏幕扩展,结果在显示器上的屏幕分辨率只能显示1024*768,很不协调,于是百度了一下,看得了一个解决方案,这里记录下来,以便以后不时之需。 原文地址:http://blog.csdn.n...
  • hk2291976
  • hk2291976
  • 2013年12月13日 13:22
  • 9141

笔记本外接显示器无法调至最佳分辨率的问题

比如22寸宽屏显示器最佳分辨率应为1680 x 1050,但打开系统调节分辨率的地方,最高只有1280 x 768。 一般来说这是由于系统无法识别显示器所至,安装驱动即可。但是有些显示器未必能提供相...
  • ariesjzj
  • ariesjzj
  • 2011年10月09日 21:25
  • 4404
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何修改显示器分辨率
举报原因:
原因补充:

(最多只允许输入30个字)