直接写屏似乎是dos时代的事情了,其实vb也可以,以下是我的sznes模拟器的一部分代码,请注意红色部分
Dim bScreen() As Byte
Dim ddrval As Long
Dim r1 As RECT
Dim r2 As RECT
objDX7.GetWindowRect frmMain.hwnd, r1
r1.Top = r1.Top + 40
r2.Bottom = ddsd2.lHeight
r2.Right = ddsd2.lWidth
r2.Right = 256
r2.Bottom = 240
objDDSurf.Lock r2, ddsd2, DDLOCK_WAIT, 0
objDDSurf.GetLockedArray bScreen
CopyMemory bScreen(0, 0), WorkFrame(0), 61440 * 2
objDDSurf.Unlock r2
ddrval = objDDPrimSurf.Blt(r1, objDDSurf, r2, DDBLT_WAIT)