Мы с Вами напишем функцию, которая будет выводить текст на вторичную поверхность, посмотреть результат можно будет переключившись на нее. Ведь у нас это реализовано. Вот так будет выглядеть результат.
Visual Basic Добавляем описание функции TextOut
Добавляем метод WriteText
Вызовем этот метод при загрузке формы.
Да маленькая мелочь, при возвращении нормального режима лучше передавать HWND формы.
Visual C++
Visual Basic
'WIN32 API SECTION
Private Declare Function TextOut Lib "gdi32" Alias "TextOutA" (ByVal_
hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String,_
ByVal nCount As Long) As Long
'END WIN32 API SECTION
Private PrimarySurf As DirectDrawSurface7
.........
Public Function WriteText() As Boolean
On Error GoTo Errors:
Dim s$
Dim a As Long
s$ = "Hello"
a = SecondarySurf.GetDC
' GDI в нашем распоряжении
w = TextOut(a&, 0, 0, s$, Len(s$))
' больше не нужно нам GDI
SecondarySurf.ReleaseDC (a)
WriteText = True
Exit Function
Errors:
WriteText = False
End Function
Private Sub Form_Load()
.........
If (DirectDrawClass.WriteText() = False) Then
End
End If
End Sub
Private Sub Class_Terminate()
objDirectDraw.RestoreDisplayMode
objDirectDraw.SetCooperativeLevel DirectDraw.hWnd, DDSCL_NORMAL
.............
End Sub