Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Получение описателя контекста устройства



В простейшем случае описатель контекста (контекст) может быть получен с помощью функций:

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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...