modchangedisplay.bas

来自「一款飞机射击游戏的源代码」· BAS 代码 · 共 47 行

BAS
47
字号
Attribute VB_Name = "ModChangeDisplay"
Option Explicit

Public OldX As Long
Public OldY As Long
Public OldColor As Long
Public Sub GetOldScreen()
    Dim DevM As DEVMODE
    Dim nDC As Long
        OldX = Screen.Width / Screen.TwipsPerPixelX
        OldY = Screen.Height / Screen.TwipsPerPixelY
        
        nDC = CreateDC("DISPLAY", vbNullString, vbNullString, DevM)
            OldColor = GetDeviceCaps(nDC, BITSPIXEL)
        DeleteDC nDC

End Sub

Public Sub ChangeDisplay(IsChangeNew As Boolean)
    Dim DevM As DEVMODE, ScInfo As Long, ReMsg As Long
    If IsChangeNew Then
        
        EnumDisplaySettings 0&, 0&, DevM
        DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT Or DM_BITSPERPEL
        DevM.dmPelsWidth = 640
        DevM.dmPelsHeight = 480
        DevM.dmBitsPerPel = 16
        ReMsg = ChangeDisplaySettings(DevM, CDS_TEST)
        Select Case ReMsg
            Case DISP_CHANGE_RESTART
                MsgBox "初始化遇到严重错误!", vbYesNo + vbSystemModal, "Error"
            Case DISP_CHANGE_SUCCESSFUL
            Case Else
                MsgBox "设备不支持,该游戏需要 640*480*16(增强) 显示模式", vbOKOnly + vbSystemModal, "Error"
        End Select
    Else
        EnumDisplaySettings 0&, 0&, DevM
        DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT Or DM_BITSPERPEL
        DevM.dmPelsWidth = OldX
        DevM.dmPelsHeight = OldY
        DevM.dmBitsPerPel = OldColor
        ChangeDisplaySettings DevM, CDS_TEST
    End If
End Sub


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?