Мы с вами создадим функцию CopySurfToSurf которая будет производить копирование из первого внеэкранного буфера на вторичную поверхность.
Visual Basic Создаем метод:
И вызовем его при загрузки формы.
В результате Вы увидите стоящего рядом с машиной полицейского после запуска программы.
Создаем функцию.
И вызовем ее при загрузки диалога.
В результате Вы увидите стоящего рядом с машиной полицейского после запуска программы.
Visual C++
Visual Basic
Public Function CopySurfToSurf() As Boolean
On Error GoTo Errors:
Dim r As RECT
r.Top = 0
r.Left = 0
r.Right = 100
r.Bottom = 240
SecondarySurf.Blt r, OffSrc1, r, DDBLT_WAIT
CopySurfToSurf = True
Exit Function
Errors:
CopySutrToSurf = False
End Function
Private Sub Form_Load()
.........
If (DirectDrawClass.CopySurfToSurf() = False) Then
End
End If
DirectDrawClass.Flips
End Sub
Visual C++
BOOL CDirectDraw::CopySurfToSurf()
{
DDBLTFX ddb;
memset(&ddb,0, sizeof(DDBLTFX));
ddb.dwSize = sizeof(DDBLTFX);
ddb.dwDDFX = DDBLTFX_MIRRORLEFTRIGHT;
CRect r;
r.top = 0;
r.left = 0;
r.right = 100;
r.bottom = 240;
if (SecondarySurf->Blt(r,offscr1,r,DDBLT_WAIT,&ddb) != DD_OK)
return FALSE;
return TRUE;
}
BOOL CDirectDlg::OnInitDialog()
{
.........
if (cDirecDraw.CopySurfToSurf()!=TRUE)
{
return FALSE;
}
cDirecDraw.Flips();
return TRUE; // return TRUE unless you set the focus to a control
}