Альтернативой в использовании функций 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.