- •Стили класса. Стили окна.
- •Структура шаблона диалога. Элементы управления.
- •Функции win32 api создания диалога
- •Взаимодействие с элементами управления
- •Чтение данных из двоичного файла в шестнадцатеричной кодировке
- •Файловая система fat32
- •Структура раздела с файловой системой ntfs
- •Метафайлы.
- •Процесс. Ресурсы процесса.
- •Передача информации между процессами
Взаимодействие с элементами управления
SendMessage посылает сообщение оконной функции указанного окна. Возврат из функции осуществляется только после обработки сообщения.
Параметры:
Wnd: Окно, принимающее сообщение или $FFFF для посылки всем всплывающим окнам в системе.
Msg: Тип сообщения.
wParam: Дополнительная информация о сообщении.
lParam: Дополнительная информация о сообщении.
Возвращает: Значение, возвращенное принимающей оконной функцией.
SendMessage(hWndList, LB_INSERTSTRING, index, (LPARAM)buffer);
Функция SendDlgItemMessage отправляет сообщение заданному элементу управления в диалоговом окне.
Параметры:
hDlg - Идентифицирует диалоговое окно, которое содержит орган управления.
nIDDlgItem - Определяет идентификатор органа управления, который принимает сообщение.
Msg - Определяет сообщение, которое будет отправлено.
wParam - Определяет дополнительную конкретизирующую сообщение информацию.
lParam - Определяет дополнительную конкретизирующую сообщение информацию.
Возвращаемое значение определяет результат обработки сообщения и зависит от переданного сообщения.
Функция SendDlgItemMessage не возвращает значение до тех пор, пока сообщение не будет обработано.
Использование SendDlgItemMessage идентично извлечению дескриптора заданного элемента управления и вызова функции SendMessage.
SendDlgItemMessage(hWndDlgNonMod, IDC_SLIDER1, TBM_SETRANGE, TRUE, (LPARAM)MAKELONG(pos,pos1));
Обработка сообщений от элементов управления диалогового окна.
Посредством уведомляющих сообщении элементы управления и прочие дочерние окна оповещают родительское окно о том, что между пользователем и этим элементом произошел обмен информацией. С разными типами элементов управления связаны разные наборы уведомляющих сообщений. Например ползунки посылают сообщения WM_HSCROLL или WM_VSCROLL и др.
Элемент управления слайдер
Слайдер, так же как кнопку, список и поле ввода, можно создать как с помощью встроенного в среду visualstudio редактора диалогов, так и с помощью тестового редактора, определив его в файле ресурсов.
CONTROL "",IDC_SLIDER1,"msctls_trackbar32",TBS_NOTICKS | WS_TABSTOP | 0xc,7,190,300,12
Элемент управления список
Список, так же как кнопку и поле ввода, можно создать как с помощью встроенного в среду visualstudio редактора диалогов, так и с помощью тестового редактора, определив его в файле ресурсов.
LISTBOX IDC_LIST1,104,44,246,116, LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
Файлы. Общие сведения
Текстовые файлы представляют собой набор однобайтовых (ANSI) или двухбайтовых данных (UNICODE), содержащих коды символов, т. е. текстовую информацию. В оперативной памяти строкой считается последовательность байт, закрытая нуль (\0) символом. В текстовом файле каждая строка завершается символом возврата каретки (\r) и переводом строки (\n) или 0D0A в шестнадцатеричной кодировке.
Бинарные файлы содержат массивы длинных чаще всего нетекстового вида, это могут быть как целые, так и вещественные числа, пользовательские структуры данных и т. п.
Поскольку Win32 поддерживает несколько файловых систем, все они должны подчиняться неким общим правилам. Имена каталогов и файлов в полном имени файла (pathname) отделяются обратной косой чертой (\). Кроме правил формирования полного имени, действуют и правила именования каталогов и файлов:
полное имя файла завершается нулевым символом;
имена файлов и каталогов не должны содержать разделительного символа (\), символов с ANSI-кодами от 0 до 31, а также символов, явно запрещенных в какой-либо файловой системе;
имена файлов и каталогов могут включать буквы разного регистра, но при поиске файлов и каталогов регистр букв не учитывается. Если файл с именем ReadMe.Txt существует, создание нового файла с именем README.TXT уже не допускается;
точка (.) идентифицирует текущий каталог. Например, .\README.TXT означает, что файл README.TXT находится в текущем каталоге;
две точки (..) идентифицируют родительский каталог. Например, ..\README.TXT означает, что файл README.TXT находится в родительском каталоге текущего каталога;
точка (.), используемая как часть имени файла или каталога, считается разделителем компонентов имени. Например, в файле README.TXT точка отделяет имя файла от его расширения;
имена файлов и каталогов не должны содержать некоторых специальных символов вроде <, >, : , " или ].
Win32 api создание файла
Для создания файлов использую функцию CreateFile
HANDLE CreateFile(
LPCTSTR lpFileName, // Указатель на имя файла (устройства)
DWORD dwDesiredAccess, //Параметры доступа
DWORD dwShareMode, //Разделяемый доступ
LPSECURITY_ATTRIBUTES lpSecurityAttributes, //безопасность
DWORD dwCreationDistribution,// Описание
DWORD dwFlagsAndAttributes, // Атрибуты файла
HANDLE hTemplateFile // Файл шаблона
);
Win32 api. Операции с файлами.
Для работы с файлами можно использовать следующие операции:
Запись данных в файл
Чтение данных из файла
Чтение текстового файла:
ReadFile(hFile, str1, length_file, &length,NULL);
Запись в текстовый файл:
hFile = CreateFile(ofn.lpstrFile, GENERIC_WRITE, FILE_SHARE_WRITE,
NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
length = GetWindowTextLength(hEdit);
WriteFile(hFile,buf,length,&lng,NULL);