大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> NET专区 -> 在VB.NET中改变显示器的分辩率

在VB.NET中改变显示器的分辩率

时间: 2021-07-31 作者:daque

在vb.net中,咱们很简单赢得表露器的辨别率,然而,要变换表露器的辨别率就比拟烦恼了。因为.net的类库没有将enumdisplaysettings 和changedisplaysettings这两个api因变量举行封装,然而咱们得挪用它们因变量,对立于vb6来说,vb.net挪用api因变量是有少许小的变换!底下,咱们就试验一下在vb.net中,运用这两个api因变量。兴建一个名目,在form1上增添两个按钮,一个名为btngetdisp,将其text属性树立为“获得辨别率”;另一个按钮名为btnsetdisp,text属性为“树立辨别率”。而后在代码窗口里增添以次代码: 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 i as integer dim devm as form1.devmode i = 0 do blnworked = enumdisplaysettings(0, i, devm) i = i + 1 loop until (blnworked = false) with devm .dmfields = dm_pelswidth or dm_pelsheight or dm_displayfrequency .dmpelswidth = iwidth .dmpelsheight = iheight'革新频次为85.dmdisplayfrequency = 85 end with call changedisplaysettings(devm, 0) end sub private sub btngetdisp_click(byval sender as system.object, byval e as system.eventargs) handles btngetdisp.click dim x as short = system.windows.forms.screen.primaryscreen.bounds.width dim y as short = system.windows.forms.screen.primaryscreen.bounds.height msgbox("您的表露器辨别率是" & x & " x " & y) end sub private sub btnsetdisp_click(byval sender as system.object, byval e as system.eventargs) handles btnsetdisp.click if msgbox("您确认要将表露器辨别率改为1024x768吗?", msgboxstyle.okcancel, "体例动静") = msgboxresult.ok then '挪用变换辨别率进程 changedisp(1024, 768) end if end sub步调运转如次图所示,点击树立辨别率,将会把表露器辨别率改为1024x7

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.