|

楼主 |
发表于 2004-3-29 12:50:00
|
显示全部楼层
Re:directdrawsurface的疑问,谢谢了。
我的C不好,使用VB编写,原码如下:
Option Explicit
Public Maindx7 As New DirectX7
Public Maindd7 As DirectDraw7
Public Mainsurface As DirectDrawSurface7
Public Backsurface As DirectDrawSurface7
Public DDSDmain As DDSURFACEDESC2
Public DDSDback As DDSURFACEDESC2
Public Mainrect As RECT
Public Backrect As RECT
Public Sub Intddraw()
Set Maindd7 = Maindx7.DirectDrawCreate("")
Call Maindd7.SetCooperativeLevel(gameMain.hWnd, DDSCL_FULLSCREEN Or DDSCL_ALLOWMODEX Or DDSCL_EXCLUSIVE)
Call Maindd7.SetDisplayMode(800, 600, 16, 0, DDSDM_DEFAULT)
DDSDmain.lFlags = DDSD_CAPS
DDSDmain.ddsCaps.lCaps = DDSCAPS_PRIMARYSURFACE
Set Mainsurface = Maindd7.CreateSurface(DDSDmain)
DDSDback.lFlags = DDSD_CAPS Or DDSD_HEIGHT Or DDSD_WIDTH
DDSDback.ddsCaps.lCaps = DDSCAPS_OFFSCREENPLAIN Or DDSCAPS_SYSTEMMEMORY
DDSDback.lWidth = 800
DDSDback.lHeight = 600
Set Backsurface = Maindd7.CreateSurfaceFromFile(App.Path & "\pic\back.bmp", DDSDback)
With Mainrect
.Top = 0
.Bottom = 600
.Left = 0
.Right = 800
End With
With Backrect
.Top = 0
.Bottom = 600
.Left = 0
.Right = 800
End With
Call Mainsurface.Blt(Mainrect, Backsurface, Backrect, DDBLT_WAIT)
End Sub
背景总是停留不住... |
|