本文共 2035 字,大约阅读时间需要 6 分钟。
msnavigation-->
动态改变屏幕设置
我们经常看到许多 Win95 的应用(尤其是游戏)在运行它的时候改变屏幕的设置,运行完后恢复,在 中,我们可以用以下方法实现: 文中的下划线(_)为接上一行。 定义'Vb man 2001'URL: http://goodvbman.yeah 'E-: coolde@21cn.comPrivate Declare Function lstrcpy _Lib "kernel32" Alias "lstrcpyA" _(lpString1 As Any, lpString2 As Any) _As LongConst CCHDEVICENAME = 32Const CCHFORMNAME = 32Private Type DEVMODEdmDeviceName As String * CCHDEVICENAMEdmSpecVersion As IntegerdmVersion As IntegerdmSize As IntegerdmDriverExtra As IntegerdmFields As LongdmOrientation As IntegerdmPaperSize As IntegerdmPaength As IntegerdmPaperWidth As IntegerdmScale As IntegerdmCopies As IntegerdmDefault As IntegerdmPrintQuality As IntegerdmColor As IntegerdmDuplex As IntegerdmYResolution As IntegerdmTTOption As IntegerdmCollate As IntegerdmFormName As String * CCHFORMNAMEdmUnusedPadding As IntegerdmBitsPerPel As IntegerdmPelsWidth As LongdmPelsHeight As LongdmDisplayFlags As LongdmDisplayFrequency As LongEnd TypePrivate Declare Function _ChangeDisplaySettings Lib _"User32" Alias "ChangeDisplaySettingsA" (_ByVal lpDevMode As Long, _ByVal dwflags As Long) As Long 'Vb man 2001'URL: http://goodvbman.yeah.net ': coolde@21cn.comPublic Function SetDisplayMode(Width As _Integer,Height As Integer, Color As _Integer) As LongConst DM_PELSWIDTH = &H80000Const DM_PELSHEIGHT = &H100000Const DM_BITSPERPEL = &H40000Dim NewDevMode As DEVMODEDim pDevmode As LongWith NewDevMode.dmSize = 122If Color = -1 Then.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHTElse.dmFields = DM_PELSWIDTH Or _DM_PELSHEIGHT Or DM_BITSPERPELEnd If.dmPelsWidth = Width.dmPelsHeight = Height If Color <> -1 Then.dmBitsPerPel = ColorEnd IfEnd WithpDevmode = lstrcpy(NewDevMode, NewDevMode)SetDisplayMode = ChangeDisplaySettings(pDevmode, 0)End Function例子:改变为 640x480x24位:
i = SetDisplayMode(640, 480, 24)
如果成功返回 0来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10748419/viewspace-1007452/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10748419/viewspace-1007452/