首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

哪位高手能帮小弟我看一下,vb6移植到vb.net 2003 就不好用了,附源代码

2012-04-01 
谁能帮我看一下,vb6移植到vb.net 2003 就不好用了,附源代码是关于修改屏幕分辨率、颜色和扫描频率的,在vb6

谁能帮我看一下,vb6移植到vb.net 2003 就不好用了,附源代码
是关于修改屏幕分辨率、颜色和扫描频率的,在vb6中使用没有问题,但是,类似的代码移植到.net上,就死活没有反应,函数返回值也是正确的,可是屏幕参数就是没有变化,真是莫名其妙,代码下载地址:
http://pickup.mofile.com/7207198342619913  

请大虾们帮我看一看,.net的代码哪里有问题

主要用到的api函数是
EnumDisplaySettings

ChangeDisplaySettings

[解决办法]
结构体的内部顺序不能变动。
Public Structure DEVMODE
<VBFixedString(CCDEVICENAME), System.Runtime.InteropServices.MarshalAs
(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst:=CCDEVICENA
ME)> 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(S
ystem.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
是系统定义的顺序,位置不能随便移。
还有,可以查看ChangeDisplaySettings的返回值,帮助判断,参数不能超过系统允许的范围

热点排行