Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТРПС- читать.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
142.34 Кб
Скачать

19. Элементы управления. Общая характеристика и области применимости. (трпс)

В Windows существует целый ряд различных элементов управления (кнопки: обычные, переключатели, радиокнопки; редакторы; списки; комбинированные списки; полоса скроллинга; статический текст).

Все элементы управления – дочерние окна. Они создаются на базе определенных классов, но можно и самому определить собственный класс дочерних окон (RegisterClass()). Каждый элемент управления должен иметь уникальный идентификатор и уникальный дескриптор окна. Приложение взаимодействует с элементами управления, передавая им и получая от них сообщения. Каждый элемент самостоятельно обрабатывает сообщения мыши и клавиатуры. И извещает родительское окно об изменении состояния (сообщение WM_COMMAND или WM_NOTIFY). Динамически создается элемент управления с помощью функции CreateWindow(), используется один из предопределенных классов (“button”, ”edit”, ”static”, “listbox”, “combobox”, “scrollbar”).

Пример создания кнопки

HWND hWndButton=CreateWindow(“button”, ”OK”, dwStyle, x, y, nWidth, nHeight, hWndParent, (HMENU)nIDCtrl, g_hInst, NULL);

NIDCtrl – идентификатор окна

При необходимости элемент управления можно удалить, однако, при разрушении родительского окна Windows разрушает и все его дочерние окна. С помощью API функций можно перемещать элементы (SetWindowPos()), делать их активными или неактивными (EnableWindow), скрывать или наоборот отображать (ShowWindow) в окне. Узнать дескриптор дочернего окна, зная его идентификатор поможет функция GetDlgItem(). Функция GetDlgCtrlID() – обратная предыдущей.

20. Функции crt и функции ядра Windows для работы с файлами. Особенности применения. (трпс)

Win32 API поддерживает два принципиально разных подхода при обмене информацией с файловой системой:

  • потоковый ввод/вывод, пришедший из MS DOS;

  • функции ядра Win32.

Потоковый ввод/вывод базируется на структуре FILE и семействе функций с ней связанных. Файл открывается с помощью функции fopen(), затем работа с ним ведется с помощью функций fgets(), fputs(), fprintf(). Для бинарного файла допустимы fread(), fwrite(), fseek() и ftell(). Файл обязательно нужно закрыть функцией fclose().

Эти функции обновлены для 32-х разрядной версии Windows, однако имеются ограничения:

    1. длина файлов не более 2ГБ;

    2. не поддерживается разделенный доступ к файлу;

    3. работа с файлом должна проводиться в одном обработчике Windows-сообщения, т.е. указатель FILE на открытый файл не может передаваться как статическая переменная от одного участка кода к другому.

В Win32 API появились принципиально новые 32-х разрядные функции. Их преимущества:

  1. высокая скорость дискового обмена данными;

  2. произвольная длина файла, т.е. до 264 байт;

  3. обеспечивается переносимость программного кода на другие платформы;

Win32 API функции позволяют работать с дисковыми файлами, почтовыми слотами, каналами, модемами, консолью.

Функция CreateFile() открывает перечисленные объекты. В качестве входных параметров указывается имя объекта, режим открытия, режим доступа и др.

После окончания работы, файл нужно закрыть функцией CloseHandle().

Работа с файлом осуществляется с помощью функций: GetFileSize(), ReadFile(), WriteFile(), SetFilePointer() и др.