我有一个游戏(DNF),它在xp下时的窗口很小,我想把它变大。昨天我在vc那里问了,不过好像我没说清楚,他们说用
FindWindow
或者
WindowFromPoint
函数先找到游戏窗口的句柄
然后用
SetWindowPos
改变大小。
我找到句柄后,发现SetWindowPos只能改变大小,如果你吧游戏窗口变大,多出来的部分是空白的。
请问用什么函数是改变游戏窗口分辨率的?
我搜了半天,很多帖子只是改变整个桌面的分辨率,我用不上的。
谁知道怎么结局,最好能给个函数的例子。
谢谢了。
FindWindow
或者
WindowFromPoint
函数先找到游戏窗口的句柄
然后用
SetWindowPos
改变大小。
我找到句柄后,发现SetWindowPos只能改变大小,如果你吧游戏窗口变大,多出来的部分是空白的。
请问用什么函数是改变游戏窗口分辨率的?
我搜了半天,很多帖子只是改变整个桌面的分辨率,我用不上的。
谁知道怎么结局,最好能给个函数的例子。
谢谢了。
解决方案 »
- 点击到控件的时候不让跟着鼠标走
- 在MSHFlexGrid控件中的记录不满时,如何一直用空行填满该控件的窗口。对于宽度,如何等分该控件单元格的宽度,使左右也填满该控件的窗口。
- 如何直接得到文本框指定行数的内容?
- 关于窗口,控件宽度的问题
- Combo控件如果选择项改变则触发事件,这个事件是什么啊?
- 使用 FileSystemObject TextStream 对象读文本,读写定位....
- ADO中的一个怪问题,请各位高手帮忙
- 如何取得CPU与主板的ID或序列号
- 高分请同仁帮忙,急也高分呀。
- 请问那点有OFFICE97下哟
- 如何知道一个exe文件打印时用到了那种字体?
- 如何将combo1中重复的内容清除?
"lstrcpyA" (lpString1 As Any, lpString2 As Any) As LongConst CCHDEVICENAME = 32
Const CCHFORMNAME = 32Private 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 TypePrivate Declare Function ChangeDisplaySettings Lib "User32" _
Alias "ChangeDisplaySettingsA" (ByVal lpDevMode As Long, _
ByVal dwflags As Long) As Long
'函数
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 。
他要的是改变应用程序窗口的大小,并且程序中的各个控件位置、大小要协调
我觉得应该根据屏幕大小按比例设置top,left等属性
那要写很多代码,又没有多大意义
我说明白点,
比如说大家在玩qq台球,我打开了qq台球的游戏界面,那个界面里面只能设置分辨率是640*480,这时候我启动另一个程序(自己编写的),启动后,qq台球的游戏界面就变成800*600了,
能不能实现?