Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
В простейшем случае описатель контекста (контекст) может быть получен с помощью функций:
HDC GetDC (HWND hwnd);
HDC GetWindowDC (HWND hwnd);
HDC GetDCEx (HWND hwnd, HRGN hrgnClip, DWORD dwFlags);
Функции GetDC и GetDCEx возвращают контекст клиентской области окна (без заголовка, рамки и пр.). Контекст всего окна может быть получен с помощью функций GetWindowDC или GetDCEx с соответствующим флагом:
DCX _ WINDOW – дать контекст всего окна, включая системную область;
DCX _ PARENTCLIP – использовать видимую часть родительского окна;
DCX _ CLIPCHILDREN – исключить подчиненные окна;
DCX _ NORESETATTRS – не сбрасывать состояние контекста при его освобождении и т.д.
При этом поведение функций зависит также от некоторых установок стиля оконного класса:
CS _ CLASSDC – использовать единственный разделяемый контекст для всех окон данного класса;
CS _ OWNDC – использовать собственный контекст для каждого экземпляра окна;
CS _ PARENTDC – использовать контекст и регион отсечения родительского окна и т.д.
Кроме получения контекста существующего окна можно создавать новые контексты, связанные с определенным устройством.
Функции
HDC CreateDC (LPCTSTR lpszDriver, LPCTSTR lpszDevice,
LPCTSTR lpszOutput, CONST DEVMODE* lpInitData);
HDC CreateCompatibleDC (HDC hPrimDC);
создают новый контекст, связанный с указанным устройством (CreateDC) или совместимым с известным контекстом (CreateCompatibleDC). Во втором случае если «образцовый» контекст не задан, то создается контекст в памяти (memory context), совместимый с текущими установками экрана. Возвращаемое значение – описатель контекста или NULL – в случае ошибки. Параметры:
lpszDriver – может быть DISPLAY для контекстов, связанных с экраном, и NULL для всех других устройств;
lpszDevice – логическое имя устройства в системе;
lpszOutput – имя устройства в файловой системе (в Win 32 – NULL);
lpInitData – указатель на структуру DEVMODE с инициирующими данными для устройства, NULL – настройки по умолчанию;
hPrimDC – «образцовый» контекст, с которым будет совместим вновь создаваемый, если NULL – экран с текущими настройками.
По окончании работы с контекстом он должен быть освобожден (закрыт). Для контекстов, полученных с помощью функций Get..., используется функция
int ReleaseDC (HWND hwnd, HDC hdc);
которая освобождает «общие» и оконные контексты.
Для контекстов, созданных с помощью функций Create..., используется функция
int DeleteDC (HDC hdc);
возвращает 1 – при успешном завершении, 0 – при ошибке.
Многие характеристики действующего контекста могут быть получены с помощью функции GetDeviceCaps (), принимающей в качестве аргумента описатель контекста и индекс (номер) интересующего параметра (описываются системными константами) и возвращающей значение этого параметра.
Дата публикования: 2015-09-17; Прочитано: 230 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!