搜索: 标题内容作者  
  首页VB.NET教程VB.NET进阶教程
背景:
阅读新闻

变更萤幕解析度(分辨率)范例

[日期:2007-11-08]   来源:互联网整理  作者:未知   [字体: ]
    新闻简介:Public Class Form1
    Private Const CCDEVICENAME As Short = 32
    Private Const CCFORMNAME As Short = 32
    Private Const DM_PELSWIDTH As Integer = &H80000
    Private Const DM_PELSHEIGHT As Integer
        关 键 词:   分辨率 

Public Class Form1

    Private Const CCDEVICENAME As Short = 32
    Private Const CCFORMNAME As Short = 32
    Private Const DM_PELSWIDTH As Integer = &H80000
    Private Const DM_PELSHEIGHT As Integer = &H100000
    '更新萤幕扫瞄频率常数
    Private Const DM_DISPLAYFREQUENCY As Integer = &H400000

    '宣告要使用的 API 函式
    Private Declare Function EnumDisplaySettings Lib "user32" Alias "EnumDisplaySettingsA" (ByVal lpszDeviceName As Integer, ByVal iModeNum As Integer, ByRef lpDevMode As DEVMODE) As Boolean

    '宣告要使用的 API 函式
    Private Declare Function ChangeDisplaySettings Lib "user32" Alias "ChangeDisplaySettingsA" (ByRef lpDevMode As DEVMODE, ByVal dwflags As Integer) As Integer

    '定义要使用的变数结构
    Private Structure DEVMODE
        <vbFixedString(CCDEVICENAME), System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst:=CCDEVICENAME)> Public dmDeviceName As String

        Dim dmSpecVersion As Short
        Dim dmDriverVersion As Short
        Dim dmSize As Short
        Dim dmDriverExtra As Short
        Dim dmFields As Integer
        Dim dmOrientation As Short
        Dim dmPaperSize As Short
        Dim dmPaperLength As Short
        Dim dmPaperWidth As Short
        Dim dmScale As Short
        Dim dmCopies As Short
        Dim dmDefaultSource As Short
        Dim dmPrintQuality As Short
        Dim dmColor As Short
        Dim dmDuplex As Short
        Dim dmYResolution As Short
        Dim dmTTOption As Short
        Dim dmCollate As Short

        <VBFixedString(CCFORMNAME), System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst:=CCFORMNAME)> Public dmFormName As String

        Dim dmUnusedPadding As Short
        Dim dmBitsPerPel As Short
        Dim dmPelsWidth As Integer
        Dim dmPelsHeight As Integer
        Dim dmDisplayFlags As Integer
        Dim dmDisplayFrequency As Integer

    End Structure

    '改变萤幕解析度的函式
    Private Sub ChangeDisp(ByRef iWidth As Single, ByRef iHeight As Single)
        Dim blnWorked As Boolean
        Dim DevM As DEVMODE
        blnWorked = EnumDisplaySettings(0, 0, DevM)
        With DevM
            .dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT Or DM_DISPLAYFREQUENCY
            .dmPelsWidth = iWidth
            .dmPelsHeight = iHeight
            '.dmDisplayFrequency = 75 '更新频率定为 75
        End With
        Call ChangeDisplaySettings(DevM, 0)
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Label1.Text = "目前萤幕的解析度为:" & My.Computer.Screen.Bounds.Width & "x" & My.Computer.Screen.Bounds.Height
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ChangeDisp(1024, 768) '变更萤幕的解析度为 1024 x 768
        Label1.Text = "目前萤幕的解析度为:" & My.Computer.Screen.Bounds.Width & "x" & My.Computer.Screen.Bounds.Height

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        ChangeDisp(800, 600) '变更萤幕的解析度为 800 x 600
        Label1.Text = "目前萤幕的解析度为:" & My.Computer.Screen.Bounds.Width & "x" & My.Computer.Screen.Bounds.Height
    End Sub
End Class

If you believe an article violates your rights or the rights of others, please contact us.

收藏 推荐 打印 | 录入:admin | 阅读:
相关新闻      
友情链接
本文评论   [发表评论] 全部评论 (0)
赞助商广告
热门评论