![]() ![]() |
||
VB中利用API函数实现屏幕颜色数设定 | ||
作者:佚名 文章来源:不详 点击数 更新时间:2008/4/18 14:45:59 文章录入:杜斌 责任编辑:杜斌 | ||
|
||
如果要永久设定其设定值,请将 b = ChangeDisplaySettings(DevM, 0) 改成 b = ChangeDisplaySettings(DevM, CDS_UPDATEREGISTRY) 注: DevM.dmBitsPERPel 便是设定颜色数,其实应说每个Pixel要多少Bits来显示 4 --> 16色 8 --> 256色 16 --> 65536色 以此类推
dmFields As Long dmOrientation As Integer dmPaperSize As Integer dmPaPerlength As Integer dmPaperWidth As Integer dmScale As Integer dmCopies As Integer dmDefaultSource As Integer dmPrintQuality As Integer dmColor As Integer dmDuplex As Integer dmYResolution As Integer dmTTOption As Integer dmCollate As Integer dmFormName As String * CCFORMNAME dmUnusedPadding As Integer dmBitsPerPel As Integer dmPelsWidth As Long dmPelsHeight As Long dmDisplayFlags As Long dmDisplayFrequency As Long End Type Private DevM As DEVMODE Private Sub Command1_Click() Dim a As Boolean Dim i As Long Dim b As Long Dim ans As Long a = EnumDisplaySettings(0, 0, DevM) ’Initial Setting DevM.dmBitsPerPel = 8 ’设定成256色 DevM.dmFields = DM_BITSPERPEL b = ChangeDisplaySettings(DevM, 0) If b = DISP_CHANGE_RESTART Then ans = MsgBox("要重开机设定才能完成,重开?", VBOKCancel) If ans = 1 Then b = ChangeDisplaySettings(DevM, CDS_UPDATEREGISTRY) Call ExitWindowsEx(EWX_REBOOT, 0) End If Else If b <> DISP_CHANGE_SUCCESSFUL Then Call MsgBox("设定有误", vbCritical) End If End If End Sub |