动态改变屏幕设置

原创 2001年06月03日 19:43:00

 

动态改变屏幕设置


  我们经常看到许多 Win95 的应用程序(尤其是游戏)在运行它的时候改变屏幕的设置,运行完后恢复,在 VB 中,我们可以用以下方法实现:

     文中的下划线(_)为接上一行。
 

定义

'Vb man 2001
'URL: http://goodvbman.
yeah.net

'E-mail: coolde@21cn.com

Private Declare Function lstrcpy _
Lib "kernel32" Alias "lstrcpyA" _
(lpString1 As Any, lpString2 As Any) _
As Long
Const CCHDEVICENAME = 32
Const CCHFORMNAME = 32
Private Type DEVMODE
dmDeviceName As String * CCHDEVICENAME
dmSpecVersion As Integer
dmDriverVersion As Integer
dmSize As Integer
dmDriverExtra As Integer
dmFields As Long
dmOrientation As Integer
dmPaperSize As Integer
dmPaperLength As Integer
dmPaperWidth As Integer
dmScale As Integer
dmCopies As Integer
dmDefaultSource As Integer
dmPrintQuality As Integer
dmColor As Integer
dmDuplex As Integer
dmYResolution As Integer
dmTTOption As Integer
dmCollate As Integer
dmFormName As String * CCHFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Integer
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type
Private 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
'E-mail: coolde@21cn.com

Public Function SetDisplayMode(Width As _
Integer,Height As Integer, Color As _
Integer) As Long
Const DM_PELSWIDTH = &H80000
Const DM_PELSHEIGHT = &H100000
Const DM_BITSPERPEL = &H40000
Dim NewDevMode As DEVMODE
Dim pDevmode As Long
With NewDevMode
.dmSize = 122
If Color = -1 Then
.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT
Else
.dmFields = DM_PELSWIDTH Or _
DM_PELSHEIGHT Or DM_BITSPERPEL
End If
.dmPelsWidth = Width
.dmPelsHeight = Height
 
If Color <> -1 Then
.dmBitsPerPel = Color
End If
End With
pDevmode = lstrcpy(NewDevMode, NewDevMode)
SetDisplayMode = ChangeDisplaySettings(pDevmode, 0)
End Function

例子调用:改变为 640x480x24位:

i = SetDisplayMode(640, 480, 24)

如果成功返回 0

动态改变屏幕设置

  • zgqtxwd
  • zgqtxwd
  • 2008年05月01日 05:28
  • 107

SurfaceView播放网络电视动态设置屏幕大小

sView.getHolder().setFixedSize(fitYSize.x, fitYSize.y);
  • djun100
  • djun100
  • 2013年10月28日 16:04
  • 1486

关于屏幕适配的简单方法,动态改变view占用屏幕的大小

动态调整布局: // 根据不同的手机屏幕去设置像素点提高屏幕的适配性的方法 int dip100 = (int) TypedValue.applyDimension( TypedV...
  • WangRain1
  • WangRain1
  • 2016年12月07日 16:16
  • 585

动态改变屏幕设置 分辨率、颜色等。

  • zgqtxwd
  • zgqtxwd
  • 2008年05月01日 05:14
  • 177

Cocos2dx 3.1.1 之 修改屏幕大小

在cocos2dx 2.x版本中,修改屏幕大小的代码在main.cpp中:
  • Pancwyz
  • Pancwyz
  • 2014年08月05日 10:06
  • 1872

横竖屏切换SurfaceView 大小的调整

视频播放的实现大概有以下形式: 1.使用系统自带视频播放类VideoView 2.使用MediaPlayer+surfaceView 3.使用一些第三方框架如:vitamio 还有像新浪在git...
  • wning1
  • wning1
  • 2016年10月30日 19:37
  • 1535

动态设置LinearLayout的高度,获取手机屏幕的大小

layout=(LinearLayout) findViewById(R.id.llayout_txt_bg); WindowManager wm = (WindowManager) this....
  • ETmanwenhan
  • ETmanwenhan
  • 2013年11月30日 19:48
  • 3150

[Unity3D]Shader编程之动态屏幕遮罩

屏幕可视范围跟随目标物体移动,可修改可视范围大小,边缘渐变大小、以及遮罩颜色,支持最高物体数量可在Shader中修改,当前版本支持最多9个物体。...
  • u012741077
  • u012741077
  • 2017年11月02日 16:50
  • 183

android 动态设置ImageView图片

以下设置方法将会用图片填充剩下的屏幕空间,图片会变形: ImageView1.setBackgroundDrawable(getResources().getDrawable(R.drawable....
  • lxq915
  • lxq915
  • 2012年04月11日 18:01
  • 2622

MFC动态改变字体颜色

HBRUSH CResetMouse::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor){ HBRUSH hbr = CDialog::OnCtlCo...
  • webe1234
  • webe1234
  • 2017年03月30日 12:04
  • 343
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:动态改变屏幕设置
举报原因:
原因补充:

(最多只允许输入30个字)