Для вывода данных на экран используются обычно статические поля или редактируемые поля.
Вывод числовых данных аналогичен выводу текста, но в начале числовые данные помещаются в символьный массив с помощью функции 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 – используется только операционной системой.