Читаем Русский справочник по Win32 API полностью

Эта функция извлекает общий, классовый или частный контекст устройства в зависимости от стиля класса, указанного для заданного окна. Для общих контекстов устройства GetDC присваивает контексту атрибуты по умолчанию каждый раз при извлечении контекста устройства. Для классовых и частных контекстов устройства GetDC оставляет ранее присвоенные атрибуты без изменений.

HDC GetDC (

HWND hWnd // дескриптор окна

);

Параметры

hWnd - идентифицирует окно, чей контекст устройства извлекается.

Возвращаемые значения

В случае успеха возвращается контекст устройства для клиентской области указанного окна.

В случае неудачи возвращается нуль.

Комментарии

После рисования с общим контекстом устройства должна быть вызвана функция ReleaseDC для освобождения контекста устройства. Классовые и частные контексты устройства не должны освобождаться. Количество контекстов устройства ограничено только объемом доступной памяти.

См. также

ReleaseDC, GetWindowDC .

<p>ResetDC</p>

Функция ResetDC обновляет данный контекст устройства плоттера или принтера, основываясь на информации в указанной структуре.

HDC ResetDC (

HDC hdc , // дескриптор контекста устройства

CONST DEVMODE * lpInitData // адрес структуры с информацией

// о контексте устройства

);

Параметры

hdc - идентифицирует контекст устройства, подлежащий обновлению.

lpInitData - указывает на структуру типа DEVMODE , содержащую информацию о новом контексте устройства.

Возвращаемые значения

В случае успеха возвращается дескриптор оригинального исходного контекста устройства.

В случае неудачи возвращается NULL .

Комментарии

Приложение обычно использует функцию ResetDC при получении сообщения WM _ DEVMODECHANGE. ResetDC также может быть использована для изменения ориентации бумаги или полей бумаги при печати документа. Функция ResetDC не может быть использована для изменения имени драйвера устройства, имени устройства или выходного порта. Когда пользователь изменяет соединение с портом или имя устройства, приложение должно удалить исходный контекст устройства и создать новый контекст с новой информацией.

См. также

DeviceCapabilities, DEVMODE, Escape .

<p>Стандартные диалоговые окна</p><p>ChooseColor</p>

Функция ChooseColor создает стандартное диалоговое окно выбора цвета.

BOOL ChooseColor (

LPCHOOSECOLOR lpcc // указатель на структуру с инициализирующими данными

);

Параметры

lpcc - указатель на структуру типа CHOOSECOLOR , которая содержит информацию, используемую для инициализации диалогового окна. Когда ChooseColor возвращает управление, структура содержит информацию о выбранном пользователем цвете.

Возвращаемые значения

Если пользователь нажимает кнопку ОК в диалоговом окне, возвращается ненулевое значение. Член rgbResult структуру типа CHOOSECOLOR содержит RGB значение цвета, выбранного пользователем.

Если пользователь нажал кнопку Cancel, или закрыл диалоговое окно, или произошла ошибка - возвращается нуль. Для получения дополнительной информации об ошибке вызовите функцию CommDlgExtendedError , которая может вернуть одно из следующих значений:

CDERR_FINDRESFAILURE

CDERR_MEMLOCKFAILURE

CDERR_INITIALIZATION

CDERR_NOHINSTANCE

CDERR_LOCKRESFAILURE

CDERR_NOHOOK

CDERR_LOADRESFAILURE

CDERR_NOTEMPLATE

CDERR_LOADSTRFAILURE

CDERR_STRUCTSIZE

CDERR_MEMALLOCFAILURE

Комментарии

Стандартное диалоговое окно выбора цвета не поддерживает палитр. Выбор цветов, предлагаемых диалоговым окном, ограничен системными цветами и прореженными (dithered) версиями тех цветов.

Вы можете предоставить функцию-ловушку (hook procedure) CCHookProc для диалогового окна. Функция-ловушка может обрабатывать сообщения, отправляемые диалоговому окну. Для использования функции установите флаг CC_ENABLEHOOK в члене Flags структуры типа CHOOSECOLOR и укажите адрес функции в члене lpfnHook .

См . также

CCHookProc, CHOOSECOLOR, CommDlgExtendedError .

<p>ChooseFont</p>

Функция ChooseFont создает стандартное диалоговое окно выбора шрифта, которое позволяет пользователю выбрать атрибуты для логического шрифта. Эти атрибуты включают в себя имя гарнитуры шрифта, стиль (жирный, наклонный или нормальный), размер, эффекты (подчеркивание, зачеркивание и цвет текста) и написание символов (или набор символов).

BOOL ChooseFont (

LPCHOOSEFONT lpcf // указатель на структуру с инициализирующими данными

);

Параметры

lpcf - указывает на структуру типа CHOOSEFONT , которая содержит информацию, используемую для инициализации диалогового окна. Когда ChooseFont возвращает управление, структура содержит информацию о выбранном пользователем шрифте.

Перейти на страницу:

Похожие книги

C++: базовый курс
C++: базовый курс

В этой книге описаны все основные средства языка С++ - от элементарных понятий до супервозможностей. После рассмотрения основ программирования на C++ (переменных, операторов, инструкций управления, функций, классов и объектов) читатель освоит такие более сложные средства языка, как механизм обработки исключительных ситуаций (исключений), шаблоны, пространства имен, динамическая идентификация типов, стандартная библиотека шаблонов (STL), а также познакомится с расширенным набором ключевых слов, используемым в .NET-программировании. Автор справочника - общепризнанный авторитет в области программирования на языках C и C++, Java и C# - включил в текст своей книги и советы программистам, которые позволят повысить эффективность их работы. Книга рассчитана на широкий круг читателей, желающих изучить язык программирования С++.

Герберт Шилдт

Программирование, программы, базы данных
C++
C++

С++ – это универсальный язык программирования, задуманный так, чтобы сделать программирование более приятным для серьезного программиста. За исключением второстепенных деталей С++ является надмножеством языка программирования C. Помимо возможностей, которые дает C, С++ предоставляет гибкие и эффективные средства определения новых типов. Используя определения новых типов, точно отвечающих концепциям приложения, программист может разделять разрабатываемую программу на легко поддающиеся контролю части. Такой метод построения программ часто называют абстракцией данных. Информация о типах содержится в некоторых объектах типов, определенных пользователем. Такие объекты просты и надежны в использовании в тех ситуациях, когда их тип нельзя установить на стадии компиляции. Программирование с применением таких объектов часто называют объектно-ориентированным. При правильном использовании этот метод дает более короткие, проще понимаемые и легче контролируемые программы. Ключевым понятием С++ является класс. Класс – это тип, определяемый пользователем. Классы обеспечивают сокрытие данных, гарантированную инициализацию данных, неявное преобразование типов для типов, определенных пользователем, динамическое задание типа, контролируемое пользователем управление памятью и механизмы перегрузки операций. С++ предоставляет гораздо лучшие, чем в C, средства выражения модульности программы и проверки типов. В языке есть также усовершенствования, не связанные непосредственно с классами, включающие в себя символические константы, inline-подстановку функций, параметры функции по умолчанию, перегруженные имена функций, операции управления свободной памятью и ссылочный тип. В С++ сохранены возможности языка C по работе с основными объектами аппаратного обеспечения (биты, байты, слова, адреса и т.п.). Это позволяет весьма эффективно реализовывать типы, определяемые пользователем. С++ и его стандартные библиотеки спроектированы так, чтобы обеспечивать переносимость. Имеющаяся на текущий момент реализация языка будет идти в большинстве систем, поддерживающих C. Из С++ программ можно использовать C библиотеки, и с С++ можно использовать большую часть инструментальных средств, поддерживающих программирование на C. Эта книга предназначена главным образом для того, чтобы помочь серьезным программистам изучить язык и применять его в нетривиальных проектах. В ней дано полное описание С++, много примеров и еще больше фрагментов программ.

Бьёрн Страуструп , Бьярн Страустрап , Мюррей Хилл

Программирование, программы, базы данных / Программирование / Книги по IT
Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ
Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ

Эта книга представляет собой перевод третьего издания американского бестселлера Effective C++ и является руководством по грамотному использованию языка C++. Она поможет сделать ваши программы более понятными, простыми в сопровождении и эффективными. Помимо материала, описывающего общую стратегию проектирования, книга включает в себя главы по программированию с применением шаблонов и по управлению ресурсами, а также множество советов, которые позволят усовершенствовать ваши программы и сделать работу более интересной и творческой. Книга также включает новый материал по принципам обработки исключений, паттернам проектирования и библиотечным средствам.Издание ориентировано на программистов, знакомых с основами C++ и имеющих навыки его практического применения.

Скотт Майерс , Скотт Мейерс

Программирование, программы, базы данных / Программирование / Книги по IT