欢迎来到天天文库
浏览记录
ID:40803448
大小:14.12 KB
页数:4页
时间:2019-08-07
《在VB中改变显示器的分辨率》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、在VB中改变显示器的分辨率重庆邮电学院徐原[请作者提供详细的邮政地址给我们]----有一些游戏如《DeltaForce》可以让玩家在玩游戏时改变显示器的分辨率,现在介绍一种在VB中实现的方法。----这里要用到一个在VB的API浏览器中没有的函数,声明如下:----PrivateDeclareFunctionChangeDisplaySettingsLib"user32"Alias_"ChangeDisplaySettingsA"(ByVallpDevModeAsLong,ByValdwflagsAsLo
2、ng)AsLong----第一个参数指向一个DEVMODE结构,第二个参数为一些标志,这些标志有:标志含义0当前屏幕的图形模式将被动态地改变CDS_UPDATEREGISTRY当前屏幕的图形模式将被动态地改变并且注册表里的屏幕分辨率的值也_被更新(注册表中保存有屏幕的分辨率及相关属性,以便以后开机或重_起时加载),在USER文件中也保存该模式CDS_TEST仅供系统测试,看这种图形模式是否能够正常CDS_FULLSCREEN临时改变WindowsNT:如果切换到另外的桌面,该模式不会被保存CDS_GLOB
3、AL该设置将被保存在全局设置区内,对所有用户都起作用CDS_SET_PRIMARY设置该设备为私有设备,这里对屏幕对象不起作用CDS_RESET恢复以前的设置声明:PrivateDeclareFunctionlstrcpyLib"kernel32"Alias"lstrcpyA"(lpString1As_Any,lpString2AsAny)AsLongPrivateDeclareFunctionChangeDisplaySettingsLib"user32"Alias_"ChangeDisplaySett
4、ingsA"(ByVallpDevModeAsLong,ByValdwflagsAsLong)AsLongPrivateConstCCHDEVICENAME=32PrivateConstCCHFORMNAME=32PrivateTypeDEVMODE’详细参考MSDNdmDeviceNameAsString*CCHDEVICENAMEdmSpecVersionAsIntegerdmDriverVersionAsIntegerdmSizeAsIntegerdmDriverExtraAsIntegerdmFi
5、eldsAsLongdmOrientationAsIntegerdmPaperSizeAsIntegerdmPaperLengthAsIntegerdmPaperWidthAsIntegerdmScaleAsIntegerdmCopiesAsIntegerdmDefaultSourceAsIntegerdmPrintQualityAsIntegerdmColorAsIntegerdmDuplexAsIntegerdmYResolutionAsIntegerdmTTOptionAsIntegerdmColl
6、ateAsIntegerdmFormNameAsString*CCHFORMNAMEdmUnusedPaddingAsIntegerdmBitsPerPelAsIntegerdmPelsWidthAsLongdmPelsHeightAsLongdmDisplayFlagsAsLongdmDisplayFrequencyAsLongEndTypePublicFunctionSetScreen(WidthAsInteger,HeightAsInteger,OptionalColorAsInteger=16)A
7、sLong'这里的16指的是真16色ConstDM_PELSWIDTH=&H80000ConstDM_PELSHEIGHT=&H100000ConstDM_BITSPERPEL=&H40000DimNewDevModeAsDEVMODEDimpDevmodeAsLongWithNewDevMode.dmSize=Len(NewDevMode)'一般为122IfColor=-1Then.dmFields=DM_PELSWIDTHOrDM_PELSHEIGHTElse.dmFields=DM_PELSWIDT
8、HOrDM_PELSHEIGHTOrDM_BITSPERPELEndIf.dmPelsWidth=Width.dmPelsHeight=HeightIfColor<>-1Then.dmBitsPerPel=ColorEndIfEndWithpDevmode=lstrcpy(NewDevMode,NewDevMode)SetDisplayMode=ChangeDisplaySettings(pDevmode,0)EndFunct
此文档下载收益归作者所有