Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СПО.docx
Скачиваний:
5
Добавлен:
03.08.2019
Размер:
1.14 Mб
Скачать
  1. Взаимодействие с элементами управления

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));

  1. Обработка сообщений от элементов управления диалогового окна.

Посредством уведомляющих сообщении элементы управления и прочие дочерние окна оповещают родительское окно о том, что между пользователем и этим элементом произошел обмен информацией. С разными типами элементов управления связаны разные наборы уведомляющих сообщений. Например ползунки посылают сообщения WM_HSCROLL или WM_VSCROLL и др.

  1. Элемент управления слайдер

Слайдер, так же как кнопку, список и поле ввода, можно создать как с помощью встроенного в среду visualstudio редактора диалогов, так и с помощью тестового редактора, определив его в файле ресурсов.

CONTROL "",IDC_SLIDER1,"msctls_trackbar32",TBS_NOTICKS | WS_TABSTOP | 0xc,7,190,300,12

  1. Элемент управления список

Список, так же как кнопку и поле ввода, можно создать как с помощью встроенного в среду visualstudio редактора диалогов, так и с помощью тестового редактора, определив его в файле ресурсов.

LISTBOX IDC_LIST1,104,44,246,116, LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP

  1. Файлы. Общие сведения

Текстовые файлы представляют собой набор однобайтовых (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 точка отделяет имя файла от его расширения;

  • имена файлов и каталогов не должны содержать некоторых специальных символов вроде <, >, : , " или ].

  1. Win32 api создание файла

Для создания файлов использую функцию CreateFile

HANDLE CreateFile(

LPCTSTR lpFileName, // Указатель на имя файла (устройства)

DWORD dwDesiredAccess, //Параметры доступа

DWORD dwShareMode, //Разделяемый доступ

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

DWORD dwCreationDistribution,// Описание

DWORD dwFlagsAndAttributes, // Атрибуты файла

HANDLE hTemplateFile // Файл шаблона

);

  1. 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);