Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Графика -> Гончаров Д. -> "DirectX 7.0 Для программистов" -> 18

DirectX 7.0 Для программистов - Гончаров Д.

Гончаров Д., Салихо Т. DirectX 7.0 Для программистов — Спб.: Питер, 2001. — 528 c.
ISBN 5-318-00173-4
Скачать (прямая ссылка): dirext7dlyaprogrammistov2001.djvu
Предыдущая << 1 .. 12 13 14 15 16 17 < 18 > 19 20 21 22 23 24 .. 229 >> Следующая

мв_ок Окно содержит одну кнопку — 0К
MB0KCANCEL Окно содержит две кнопки — 0К и ОТМЕНА
MBYESN0 Окно содержит две кнопки — ДА и НЕТ
MBIC0NST0P Окно содержит изображение знака «стоп»
MBICONQUESTI0N Окно содержит знак вопроса
HBICONWARNING Окно содержит восклицательный знак
Функция возвращает значение, указывающее на нажатую кнопку. Например, значение ID0K говорит о том, что информационное окно было закрыто нажатием кнопки ОК. Другие значения: IDNO, IDYES, IDCANCEL.
Возвращаясь к таймерам Windows, следует обратить внимание на то, что в очереди сообщений приложения может находиться лишь одно сообщение WM TIMER. Если в очереди уже находится это сообщение и система не успела выбрать его, то другое аналогичное сообщение в очередь не помещается до тех пор, пока не будет обработано предыдущее.
На данный момент необходимо четко представлять особенности создания оконной процедуры Windows-приложения.
1. Определить список сообщений, на которые программа должна реагировать явно. Среди обязательных должно быть сообщение WM DESTR0Y.
2. Используя файл WIND0WSX.Н, определить необходимые прототипы функций, которые будут отвечать на выбранные* сообщения.
3. Используя макрос HANDLE_MSG, создать оконную процедуру, следуя изложенным ранее принципам.
4. Написать код реализации для функций, отвечающих на сообщения Windows.
Файловый ввод/вывод
Любое приложение, хранящее свои данные на диске, должно иметь возможность считать эти данные в оперативную память. У программиста на C/C++ в данном вопросе есть выбор: либо воспользоваться функциями файлового ввода/вывода, предоставляемыми стандартной библиотекой C/C++, либо обратиться к аналогичным функциям, предоставляемым Win32.
Файловый ввод/вывод
41
В примерах данной книги мы остановились на втором варианте, так как функции ввода/вывода Win32 обладают существенно расширенными возможностями по сравнению с библиотечными, предоставляя программисту осуществлять контроль за многими аспектами чтения и записи. Кроме того, по нашему личному мнению эти функции работают несколько быстрее.
Впрочем, за большие возможности приходится расплачиваться — синтаксис использования функций ввода/вывода Win32 сложнее синтаксиса аналогичных библиотечных функций.
Открытие файла
Начнем с того, что дескриптор файла в Win32 является объектом ядра и, следовательно, имеет тип HANDLE. Дескриптор открываемого или создаваемого файла можно получить, воспользовавшись функцией
HANDLE CreateFile(
LPCTSTR lpFileName, //Имя открываемого файла
DWORD dwDesiredAccess, //Тип доступа
DWORD dwShareMode, //Режим разделения
LPSECURITY ATTRIBUTES 1 pSecuri tyAttributes, //Атрибуты защиты DWORD dwCreationDisposition, //Способ создания
DWORD dwFlagsAndAttributes, //Прочие атрибуты
HANDLE hTemplateFile //Дескриптор файла-образца
);
Эта функция предназначена не только для работы с файлами, но и с большим количеством различных устройств, среди которых последовательный и параллельный порты, почтовые слоты и др. Однако в данной книге мы будем использовать эту функцию лишь для работы с файлами.
Первый параметр функции lpFileName — адрес строки с завершающим нулем, которая содержит имя открываемого файла.
Второй параметр dwDesiredAccess позволяет задать тип доступа открываемого файла. Этот параметр может принимать одно из значений, перечисленных далее: GENERIC READ (доступ только для чтения) или GENRIC_WRITE (доступ только для записи). Комбинация этих флагов GENERIC_R?AD|GENERIC_WRITE устанавливает свободный обмен данными.
; i
Параметр dwShareMode устанавливает режим разделения устройства, например, между потоками. Возможные значения: 0 (устройство захвачено монопольно), FILE SHARE READ (другой запрос на открытие этого файла будет успешен, лишь если это запрос на чтение), FILE SHARE READ (другой запрос на открытие этого файла будет успешен, лишь если это запрос на запись). Комбинация этих флагов FILE_SHARE_READ|FILE_SHARE_WRITE делает устройство доступным как для чтения, так и для записи.
Параметр 1 pSecuri tyAttributes позволяет устанавливать атрибуты защиты объекта ядра. Поскольку нас устраивают значения атрибутов по умолчанию, то в качестве этого параметра будет передаваться NULL.
Параметр dwCreationDisposition имеет смысл для файлов и позволяет задавать действия на тот случай, если создаваемый файл уже существует либо открываемый файл отсутствует. Допустимые значения этого параметра: CREATE NEW (создается новый файл; если он уже существует; то возникает ошибка), CREATE_ALWAYS
42
Урок 1 • Основы программирования на C/C++ для Windows 9X/NT
(создается новый файл; если он уже существует, то функция его перезапишет), OPEN EXISTING (открывается существующий файл; если его нет, то возникает ошибка), OPENALWAYS (открывает существующий файл; если его нет, то создается новый).
Параметр dwFlagAndAttributes позволяет определять особенности поведения функции CreateFile. Например, значение FILE_FLAG_NO_BUFFERING заставляет систему отказаться от буферизации для данного файла. В качестве этого параметра мы всегда будем использовать 0.
Предыдущая << 1 .. 12 13 14 15 16 17 < 18 > 19 20 21 22 23 24 .. 229 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.