| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 684 人关注过本帖
标题:请大虾赐教(急用!!!!!!)
只看楼主 加入收藏
caoyuanbuluo
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2005-4-21
收藏
 问题点数:0 回复次数:6 
请大虾赐教(急用!!!!!!)
       看了一名高手编写的一段程序,想拿过来用一下,却遇到点麻烦!

       作者用的是5.0版本,而本人使用的是6.0版本,结果的有一个API在6.0中不能调用(本人可能6.0中不存在这个函数)。

        这个函数是ChangeDisplaySetting,(为方便大虾分析)在5.0中引用的语句如下:Public Declare Function ChangeDisplaySetting Lib "user32" Alias "ChangeDisplaySettingA" (ByVal lpDevMode As Long, ByVal dwflags As Long) As Long

        现在呢,我的问题是:能否在6.0中找一个API函数,它的功能与ChangeDisplaySetting相同(这个函数的功能好象是改变屏幕分辨率的)。
搜索更多相关主题的帖子: 分析 
2005-05-17 17:52
griefforyou
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:3336
专家分:0
注 册:2004-4-15
收藏
得分:0 
API函数是操作系统定义的,与VB版本无关。

ChangeDisplaySetting函数可以用来改变分辨率。我从网上找到一些代码,但是运行时都显示硬件不支持,无法修改分辨率,然后我自己研究了一个晚上,终于成功了。

dB7rasAb.rar (11.31 KB) 请大虾赐教(急用!!!!!!)



OxPWt7sP.gif (5.34 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册

天津网站建设 http://www./
2005-05-18 00:57
caoyuanbuluo
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2005-4-21
收藏
得分:0 
大哥,我要的是源程序,你给我编译过的程序——没用的!
2005-05-18 09:42
griefforyou
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:3336
专家分:0
注 册:2004-4-15
收藏
得分:0 
我弄了一个晚上才弄出来的,舍不得呀。

天津网站建设 http://www./
2005-05-18 10:38
griefforyou
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:3336
专家分:0
注 册:2004-4-15
收藏
得分:0 

'//////////////////////////////// '// '//griefforyou收集整理 '// '//////////////////////////////// Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long Private Declare Function ChangeDisplaySettings Lib "user32" Alias "ChangeDisplaySettingsA" (lpDevMode As Any, ByVal dwflags As Long) As Long

Private Const CCDEVICENAME As Long = 32 Private Const CCFORMNAME As Long = 32

Private Const DM_BITSPERPEL As Long = &H40000 Private Const DM_PELSWIDTH As Long = &H80000 Private Const DM_PELSHEIGHT As Long = &H100000 Private Const DM_DISPLAYFLAGS As Long = &H200000 Private Const DM_DISPLAYFREQUENCY = &H400000

Private Const CDS_FORCE As Long = &H80000000

Private Const BITSPIXEL As Long = 12 Private Const HORZRES As Long = 8 Private Const VERTRES As Long = 10 Private Const VREFRESH = 116

Private Type DEVMODE dmDeviceName As String * CCDEVICENAME 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 * CCFORMNAME dmUnusedPadding As Integer dmBitsPerPel As Integer dmPelsWidth As Long dmPelsHeight As Long dmDisplayFlags As Long dmDisplayFrequency As Long End Type

Private Sub cmdChangeDesktopMode_Click()

Dim DM As DEVMODE With DM .dmPelsWidth = CInt(txtNewWidth.Text) .dmPelsHeight = CInt(txtNewHeight.Text) .dmBitsPerPel = CInt(txtNewColor.Text) .dmDisplayFrequency = CInt(txtNewFreq.Text) .dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT Or DM_BITSPERPEL Or DM_DISPLAYFREQUENCY .dmSize = LenB(DM) End With If ChangeDisplaySettings(DM, CDS_FORCE) <> 0 Then MsgBox "错误!不支持此模式!" End If

End Sub

Private Sub Form_Load() txtOldWidth.Text = GetDeviceCaps(Me.hdc, HORZRES) txtOldHeight.Text = GetDeviceCaps(Me.hdc, VERTRES) txtOldColor.Text = GetDeviceCaps(Me.hdc, BITSPIXEL) txtOldFreq.Text = GetDeviceCaps(Me.hdc, VREFRESH) End Sub


天津网站建设 http://www./
2005-05-18 11:19
caoyuanbuluo
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2005-4-21
收藏
得分:0 
谢谢斑竹了!
2005-05-18 15:11
EA_Games
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:539
专家分:0
注 册:2005-3-13
收藏
得分:0 
以下是引用griefforyou在2005-5-18 10:38:45的发言: 我弄了一个晚上才弄出来的,舍不得呀。
呵呵,griefforyou应该弄点小费收收.

2005-05-18 15:13
快速回复:请大虾赐教(急用!!!!!!)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018091 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved