русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Ввод - вывод данных посредством передачи сообщений


Дата добавления: 2013-12-23; просмотров: 851; Нарушение авторских прав


Извлечение данных из диалога

Ввод данных

Для вывода данных на экран используются обычно статические поля или редактируемые поля.

Вывод числовых данных аналогичен выводу текста, но в начале числовые данные помещаются в символьный массив с помощью функции sprintf(), а затем выводятся в соответствующее окно с помощью функции

 

SetDlgItemText ( hDlg, nID, szString ),

 

где

hDlg – дескриптор диалогового окна;

nID – идентификатор органа управления;

szString – указатель на выводимую символьную строку.

 

 

Извлечение данных ( ввод данных ) осуществляется из редактируемых полей с помощью функции

 

GetWindowText ( hControl, szString, iLen );

 

где

hControl – дескриптор элемента управления ( редактируемого поля );

szString – указатель на строку, в которую помещается текст;

iLen – длина вводимого текста.

 

 

Для получения дескриптора элемента управления используется функция

 

hControl = GetDlgItem ( hWnd, nId );

где

hWnd – дескриптор окна диалога;

nId – идентификатор органа управления.

 

Полученную символьную строку szString необходимо преобразовать к соответствующему типу данных функциями преобразования типа.

 

Например, преобразовать строку в целое число можно функцией atoi ( ) :

int a = atoi (szString ).

 

Альтернативой в использовании функций SetDlgItemText ( ) и GetWindowText ( ) является ввод - вывод данных с помощью функции

 

SendDlgItemMessage ( HWND hDlg,

int ID,

UINT uMessage,

WPARAM wParam,

LPARAM lParam);

где

hDlg – дескриптор окна диалога;

iID – идентификатор органа управления;

uMessage – передаваемое сообщение;

wParam , lParam – параметры, соответствующие сообщению.

 

Например, для того чтобы вывести десятичное целое число 25 ( int a=25 ) в статическое поле с идентификатором ID_TEXT, расположенном в окне с дескриптором hDlg необходимо преобразовать число к символьному виду и поместить в символьный массив s:



sprintf (s, « %d », a );

 

а затем передать сообщение WM_SETTEXT:

 

SendDlgItemMessage ( hDlg, ID_TEXT, WM_SETTEXT, 0, long (s) );

 

Для считывания числа из редактируемого поля с идентификатором ID_EDIT необходимо передать сообщение WM_GETTEXT:

 

SendDlgItemMessage ( hDlg, ID_EDIT, WM_GETTEXT, 0, long (s));

 

а затем преобразовать символьную строку s к соответствующему типу данных, например,

int a = atoi (s) ;

Очевидно, что вместо функции SendDlgItemMessage( ) можно использовать сочетание функций SendMessage ( ) и GetDlgItem ( ), рассмотренное ранее.

Следует отметить, что для ввода - вывода данных можно пользоваться также и макросами Edit_SetText ( ) и Edit_GetText ( ), определенными в windowsx.h .

 

Функция CreateFile ( )

HANDLE CreateFile (

LPCTSTR lpFileName, // имя файла

DWORD dwDesiredAccess, // доступ чтение / запись

DWORD dwShereMode, // доступен для другого

// приложения

LPSECURITY_ATTRIBUTES lpSecurity, // безопасность

DWORD dwCreation, // перезапись

DWORD dwFlag, // скрытый, системный и т. д.

HANDLE hTemplateFile ); // файл с атрибутами копирование

 

Функция CreateFile() используется для открытия и закрытия файлов, для создания нового файла.

Первый параметр – указатель на символьную строку, содержащую имя файла.

 

Второй параметр может иметь следующие значения :

0 – запрашивает устройство без осуществления фактического доступа к нему;

GENERIC_READ – можно читать файл и перемещать указатель файла;

GENERIC_WRITE – можно записывать файл и перемещать его указатель;

 

Третий параметр может принимать одно из следующих значений:

0 – неразделяемый файл;

FILE_SHARE_READ – доступен другим приложениям для чтения;

FILE_SHARE_WRITE – доступен другим приложениям для записи.

 

Четвертому параметру в Windows 95 можно присваивать значение NULL. Этот параметр имеет смысл в Windows NT .

 

Пятый параметр может принимать следующие значения:

CREATE_NEW – вызывает отказ в случае, если файл существует;

CREATE_ALWAYS – перезаписывает существующий файл;

OPEN_EXISTING – отказ в случае, если файл не существует;

OPEN_ALWAYS – создает файл, если он не существует;

TRONCATE_EXISTING – файл усекается до 0 байт ( используется вместе со значением второго параметра GENERIC_WRITE ).

 

Шестой параметр dwFla :

FILE_ATTRIBUTE_ARCHIVE – архивный файл;

FILE_ATTRIBUTE_COMPRESSED – файл или каталог сжаты;

FILE_ATTRIBUTE_NORMAL – нет атрибутов;

FILE_ATTRIBUTE_HIDDEN – скрытый файл;

FILE_ATTRIBUTE_READONLY – файл только для чтения;

FILE_ATTRIBUTE_SYSTEM – используется только операционной системой.

 

Пример:

HANDLE CreateFile ( «NameFile .txt»,

GENERIC_READ | GENERIC_WRITE,

0, NULL, CREATE_ALWAYS,

FILE_ATTRIBUTE_NORMAL, NULL );

Функция WriteFile ( )

 

BOOL WriteFile ( HANDLE hFile, // дескриптор файла

LPCVOID lpBuffer, // данные, подлежащие выводу

DWORD NumberBytes , // число выводимых байт

LPDWORD lpBytesWritten, // число записанных байт

LPOVERLAPPED lpOverlapped ) ; // структура для

//перекрываемого

// ввода – вывода

Первый параметр hFile – дескриптор файла, который возвращен функцией

CreateFile().

Второй параметр – указатель на символьную строку, подлежащую выводу.

Третий параметр – число выводимых байт, т.е. .длина символьной строки.

Четвертый параметр – число выведенных байт.

Пятый параметр – должен быть задействован в асинхронном вводе - выводе при работе с каналами, коммуникационными устройствами и т.д.

В случае успешного выполнения функция WriteFile() возвращает значение TRUE.

 



<== предыдущая лекция | следующая лекция ==>
Окно сообщений | Работа с отображенным файлом


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.005 сек.