如何找出这些dwFlags常量的值?

时间:2013-09-19 15:40:56

标签: c# .net dllimport unmanaged

我正在查看ChangeDisplaySettings的MSDN文档。对于dwFlags选项,您可以传入0或其他列出的其他标志。但是,我无法弄清楚如何直接引用这些标志,也不知道它们实际使用的long值是什么。

我正在使用C#应用程序进行这些调用:

[DllImport("User32.dll")]
public static extern long ChangeDisplaySettings(ref DeviceMode lpDevMode, int dwflags);

有没有办法可以直接引用这些标志,或者除此之外,找出它们的实际值是什么?

1 个答案:

答案 0 :(得分:3)

http://www.pinvoke.net救援

[Flags()]
public enum ChangeDisplaySettingsFlags : uint
{
    CDS_NONE = 0,
    CDS_UPDATEREGISTRY = 0x00000001,
    CDS_TEST = 0x00000002,
    CDS_FULLSCREEN = 0x00000004,
    CDS_GLOBAL = 0x00000008,
    CDS_SET_PRIMARY = 0x00000010,
    CDS_VIDEOPARAMETERS = 0x00000020,
    CDS_ENABLE_UNSAFE_MODES = 0x00000100,
    CDS_DISABLE_UNSAFE_MODES = 0x00000200,
    CDS_RESET = 0x40000000,
    CDS_RESET_EX = 0x20000000,
    CDS_NORESET = 0x10000000
}

[DllImport("user32.dll")]
public static extern DISP_CHANGE ChangeDisplaySettings(ref DEVMODE devMode, ChangeDisplaySettingsFlags flags); 

来源http://www.pinvoke.net/default.aspx/user32.changedisplaysettings