Я уже говорил, что GDI не куда не делось и этот интерфейс можно использовать для рисования на поверхности. Есть ряд операций в которых нам как раз может помочь GDI. Например, вывод текста. Для того, что бы использовать функции GDI нам нужно получить указатель на DC. Как раз это и реализует функция GetDC. Отличительной особенность этой функции служит то, что она не требует блокировки. То есть блокировка производиться автоматически. Но как программа узнает, что мы больше не будем использовать GDI? Как раз для этого есть другая функция ReleaseDC. Итак, общая схема такая.
GetDC ......... Функции работы с GDI ......... ReleaseDC
Visual Basic Описание Параметры Возвращаемое значение Ошибки Описание Параметры Возвращаемое значение
Если метод успешен, возвращаемое значение - DD_OK.
Visual C++
Visual Basic
object.GetDC() As Long
Object
Объектная переменная к DirectDrawSurface7
Если функция успешна то контекст устройства.
Если вызов не успешен, то будет сгенерирована ошибка и код установлен в Err.Number. Одно из следующих значений.
DDERR_DCALREADYCREATED
DDERR_GENERIC
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DDERR_INVALIDSURFACETYPE
DDERR_SURFACELOST
DDERR_UNSUPPORTED
DDERR_WASSTILLDRAWING
Visual C++
HRESULT GetDC
(
HDC FAR *lphDC
);
lphDC
Адрес возвращенного контекста устройства.
Если метод терпит неудачу, возвращается одна из следующих значений ошибки:
DDERR_DCALREADYCREATED
DDERR_GENERIC
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DDERR_INVALIDSURFACETYPE
DDERR_SURFACELOST
DDERR_UNSUPPORTED
DDERR_WASSTILLDRAWING