Операционная система Microsoft Windows 3.1 для программиста -том 3


Новый вариант приложения OEM3ANSI


Приведем еще один вариант приложения OEM3ANSI, описанного в предыдущем томе "Библиотеки системного программиста". В новом варианте приложение заказывает в глобальной области памяти буфер для чтения перекодируемого файла, причем размер этого буфера равен... размеру файла! Далее с помощью одного вызова функции _hread весь файл переписывается в буфер и перекодируется "по месту". Результат перекодировки из буфера переписывается в выходной файл за один вызов функции _hwrite. Таким образом, в нашем приложении нет привычного цикла чтения файла, который прерывается при достижении конца файла, а также нет цикла записи в файл. Механизм виртуальной памяти расширенного режима операционной системы Windows и функции _hread, _hwrite облегчают работу с файлами.

Кроме демонстрации работы перечисленных выше двух функций в новом варианте приложения OEM3ANSI для выбора входного и выходного файла мы использовали вместе со стандартными функциями GetOpenFileName и GetSaveFileName нестандартные шаблоны диалоговых панелей "Open" и "Save as...". Внешний вид диалоговой панели для выбора входного файла представлен на рис. 4.3, для выбора выходного файла - на рис. 4.4.

Рис. 4.3. Выбор входного файла

Рис. 4.4. Выбор выходного файла

Механизм шаблонов, предусмотренный во всех функциях стандартных диалоговых панелей из DLL-библиотеки commdlg.dll, можно использовать в тех случаях, когда вас не устраивает внешний вид стандартных диалоговых панелей. Например, все надписи в стандартной диалоговой панели "Open" выполнены на английском языке. Вы, вероятно, сумеете найти другой вариант библиотеки commdlg.dll (например, русифицированный), но лучше создать свой шаблон диалоговой панели, в котором вы можете перевести надписи на любой язык или внести другие изменения.

Как создать свой шаблон для стандартной диалоговой панели ?

Для этого проще всего воспользоваться приложением Borland Resource Workshop. С помощью этого приложения вы сможете "вытянуть" из DLL-библиотеки commdlg.dll описание любого имеющегося там ресурса, записав его в текстовый файл с расширением имени rc.




Начало  Назад  Вперед