|
Программирование >> Процедурные приложения
Рис.16.1. Окно типичного Windows-приложения Название приложения появляется в строке заголовка его окна. Все функции, выполняемые программой, перечислены в меню. Чтобы выполнить команду, достаточно выбрать в меню соответствующий пункт и щелкнуть на нем мышью. В большинстве приложений вызовы команд меню дублируются также комбинациями клавиш. Как правило, программы имеют сходный внешний вид окон и похожие наборы команд меню. Пользователю достаточно на примере одного приложения изучить основные операции по открытию и манипулированию файлами и данными, чтобы чувствовать себя вполне уверенно с любым другим приложением Windows. В качестве примера к сказанному давайте сравним внешний вид окон MicrosoftExcel и MicrosoftWord, представленных соответственно на рис. 16.2 и рис. 16.3. Нетрудно заметить, что окна построены по одному и тому же принципу и в строке меню присутствуют стандартные пункты - File, Edit и другие. Эти же пункты меню вы найдете в окне редактора Paint, показанном на рис. 16.1. Стандартный интерфейс облегчает работу не только пользователям, но и программистам. Для добавления в приложение меню или диалогового окна достаточно воспользоваться одной из стандартных функций Windows. Поскольку за реализацию меню и диалоговых окон отвечает сама система, а не программист, это гарантирует правильность работы интерфейса приложения. Рис. 16.2. Окно приложения Microsoft Excel Рис. 16.3. Окно приложения Microsoft Word Многозадачная среда Многозадачность Windows состоит в том, что одновременно можно запустить несколько приложений или открыть сразу несколько сеансов работы с одним приложением. На рис. 16.4 показаны окна двух приложений, запущенных одновременно. Каждая программа разместила свое окно поверх рабочего стола Windows. В любой момент времени пользователь может переместить одно из окон в иное место экрана, перейти от одного окна к другому, изменить их размер или произвести обмен данными между приложениями. Рис. 16.4. Windows позволяет запускать несколько приложений одновременно Хотя считается, что приложения выполняются одновременно, в действительности это не так. В текущий момент времени только одно приложение может использовать ресурсы процессора. Многозадачность реализуется за счет того, что процессор переключается межжду выполняющимися заданиями в течение очень коротких промежутков времени. Приоритеты выполнения одновременно запущенных программ также не одинаковы. В текущий момент времени активным, т.е. принимающим данные от пользователя, может быть только одно приложение, хотя инструкции для процессора могут поступать сразу от всех открытых приложений, независимо от их состояния. Задачу определения приоритетов приложений и распределения времени работы процессора берет на себя Windows. До того как многозадачность в Windows была реализована, приложения получали полный контроль над предоставляемыми им ресурсами компьютера, включая устройства ввода/вывода, память, монитор и центральный процессор. В среде Windows все эта ресурсы динамически распределяются между запущенными приложениями. Ввод данных посредством очередей Как вы уже знаете, в среде Windows память компьютера представляет собой совместно используемый ресурс. Таковыми являются и большинство устройств ввода, в частности клавиатура и мышь. Поэтому при разработке Windows-приложений становятся недоступными функции наподобие getchar()языка С, считывающие символы непосредственно с клавиатуры, равно как и потоки ввода/вывода языка C++. В среде Windows приложение не может обращаться напрямую к клавиатуре или мыши и получать данные непосредственно от них. Подобная задача выполняется самой Windows, которая заносит данные в системную очередь. Из очереди введенные данные распределяются между запущенными программами. Это осуществляется путем копирования сообщений из системной очереди в очереди соответствующих приложений. Затем, как только приложение оказывается готовым принять данные, оно считывает сообщения из своей очереди и распределяет их между открытыми окнами.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |