【发布时间】:2010-08-24 04:30:15
【问题描述】:
因此,我正在尝试获取正确的设备上下文,以便可以在 N 监视器配置 (2+) 中的各个监视器上设置伽马斜坡。
我试过了
[DllImport("gdi32.dll")]
static extern IntPtr CreateDC(string lpszDriver, string lpszDevice, string lpszOutput, IntPtr lpInitData);
通过这种方法,我将字符串“DISPLAY”用于 lpszDriver,我正在使用另一个 pInvoke 方法枚举显示并获取显示设备名称,该名称最终类似于“\Registry\Machine\System\CurrentControlSet\Control \Class{4d36e96e-e325-11ce-bfc1-08002be10318}\0042" 并作为 lpszDevice 传入。 lpszOutput 为空,lpInitData 为 IntPtr.Zero。返回的 hDC 有效,但似乎是全局的。
和
[DllImport("user32.dll")]
public static extern IntPtr GetDC(IntPtr hWnd);
通过这种方法,我尝试使用实际的窗体句柄。
我正在使用
[DllImport("gdi32.dll")]
private static extern int SetDeviceGammaRamp(IntPtr hDC, ref RAMP lpRamp);
它确实设置了伽马斜坡,但它总是设置两个显示器。 有什么想法吗?
【问题讨论】: