- •1. Windows-как объектно-ориентированная операционная система (трпс)
- •2. Общая схема взаимодействия приложения и ядра Windows. (трпс)
- •3. Общая схема Windows приложения. Цикл обработки сообщения, функция окна, ресурсы. (трпс)
- •4. Синхронные и асинхронные Windows сообщения. Сходства и отличия. Области применения. (трпс)
- •5. Классы и стили окон. Иерархия окон. (трпс)
- •6. Особенности отрисовки для Windows приложения. Контекст устройства, недействительная область, обработка сообщений. (трпс)
- •7. Типы клавиатурных сообщений. Особенности обработки. (трпс)
- •8. Типы сообщений от манипулятора мышь. Особенности обработки. (трпс)
- •9. Реализация корпоративной и вытесняющей многозадачности на Windows платформах. (трпс)
- •10. Основные понятия процесса, потока, фибера (трпс)
- •11. Схема создания рабочего потока (трпс)
- •12. Синхронизация потоков, события, критические секции. (трпс)
- •13. Особенности использования памяти на Windows платформах. Проблема ipc (трпс)
- •14. Общая схема печати документов приложением на Windows платформах. (трпс)
- •2 Создание немодального диалога для отмены печати.
- •16. Типы и области применимости dll. Особенности программной реализации. (трпс)
- •17. Наборы символов для Windows платформ. Сходства и отличия. Области применимости. (трпс)
- •18. Типы диалогов для Windows платформ. Сходства и отличия. Особенности реализации. (трпс)
- •Int DialogBox(hinstance hInst,lpctstr pTemplate, hwnd hWndParent, dlgproc pDlgFunc)
- •Int MessageBox(hwnd hWnd, lpctstr szText, lpctstr szCaption, uint uType);
- •If (!IsDialogMessage(hDlgModaless,&msg)){
- •19. Элементы управления. Общая характеристика и области применимости. (трпс)
- •20. Функции crt и функции ядра Windows для работы с файлами. Особенности применения. (трпс)
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, однако имеются ограничения:
длина файлов не более 2ГБ;
не поддерживается разделенный доступ к файлу;
работа с файлом должна проводиться в одном обработчике Windows-сообщения, т.е. указатель FILE на открытый файл не может передаваться как статическая переменная от одного участка кода к другому.
В Win32 API появились принципиально новые 32-х разрядные функции. Их преимущества:
высокая скорость дискового обмена данными;
произвольная длина файла, т.е. до 264 байт;
обеспечивается переносимость программного кода на другие платформы;
Win32 API функции позволяют работать с дисковыми файлами, почтовыми слотами, каналами, модемами, консолью.
Функция CreateFile() открывает перечисленные объекты. В качестве входных параметров указывается имя объекта, режим открытия, режим доступа и др.
После окончания работы, файл нужно закрыть функцией CloseHandle().
Работа с файлом осуществляется с помощью функций: GetFileSize(), ReadFile(), WriteFile(), SetFilePointer() и др.
