66567

Работа с графической средой ОС UNIX и Windows

Лабораторная работа

Информатика, кибернетика и программирование

Цель работы – изучить архитектуру системы X Window, базовых механизмов отображения графической информации и способов управления графическими окнами в UNIX, основные компоненты оконного интерфейса в Windows.

Русский

2014-08-22

44 KB

0 чел.

Санкт-Петербургский государственный политехнический университет

Факультет технической кибернетики

—————————

Кафедра информационной безопасности компьютерных систем

ОТЧЕТ

по лабораторной работе №7 

«Работа с графической средой ОС UNIX и Windows»

по курсу «Операционные системы»

Студент:

Никитин А. С.

гр. 2088/1

Преподаватель:

Степанова Т. В.

Санкт-Петербург — 2011

1. Формулировка задания

Цель работы – изучить архитектуру системы X Window, базовых механизмов отображения графической информации и способов управления графическими окнами в UNIX, основные компоненты оконного интерфейса в Windows.

2. Использованные теоретические сведения

3. Результаты работы

3.1. Выполнение примеров

  1.  X Window. Выполнить компиляцию и запуск программы из примера 2. Выполнить перемещение и изменение размеров окон клиента средствами оконного менеджера во время их пребывания на экране, убедиться в изменении содержания окон после таких операций.
    Компиляция программы была выполнена командой gcc -I/usr/include -L/usr/lib -lX11
    main.c. После запуска были созданы два окна, которые можно было перемещать и изменять их размер. Содержание окон после операций изменяется.

3.2. Выполнение индивидуального задания

  1.  WINAPI. Создать оконное приложение, имеющие в рабочей области главного окна два поля ввода текста (EDIT) и кнопку (BUTTON). По нажатию кнопки текст из одного окна ввода (например, правого или верхнего, в зависимости от расположения) копирует в другое (левое или нижнее соответственно). Если текст не введён, должно появляться окно сообщения с информацией о том, что текст не введён.
    #include <windows.h>
    #include <stdio.h>

    HWND window, bg, in, out, btnCopy;

    TCHAR textS[128];
    WORD textL;

    LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);

    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
       WNDCLASSEXA wndClass;
       MSG message;
       wndClass.cbSize = sizeof(WNDCLASSEXA);
       wndClass.style = 0;
       wndClass.lpfnWndProc = WindowProc;
       wndClass.cbClsExtra = 0;
       wndClass.cbWndExtra = 0;
       wndClass.hInstance = hInstance;
       wndClass.hIcon = LoadIconA(0, IDC_NO);
       wndClass.hCursor = LoadCursorA(0, IDC_ARROW);
       wndClass.hbrBackground = (HBRUSH) COLOR_BTNTEXT;
       wndClass.lpszMenuName = "";
       wndClass.lpszClassName = "window";
       wndClass.hIconSm = LoadIconA(0, IDC_NO);
       RegisterClassExA(&wndClass);
       window = CreateWindowExA(0, "window", "Sample window", WS_SYSMENU, 300, 300, 400, 95, NULL, NULL, hInstance, NULL);
       bg = CreateWindowExA(0, "STATIC", "", WS_CHILD, 0, 0, 400, 200, window, NULL, hInstance, NULL);
       in = CreateWindowExA(0, "EDIT", "", WS_CHILD, 5, 5, 380, 15, window, NULL, hInstance, NULL);
       out = CreateWindowExA(0, "EDIT", "", WS_CHILD, 5, 50, 380, 15, window, NULL, hInstance, NULL);
       btnCopy = CreateWindowExA(0, "BUTTON", "Copy", WS_CHILD, 5, 25, 60, 20, window, NULL, hInstance, NULL);
       ShowWindow(window, SW_SHOW);
       ShowWindow(bg, SW_SHOW);
       ShowWindow(in, SW_SHOW);
       ShowWindow(out, SW_SHOW);
       ShowWindow(btnCopy, SW_SHOW);
       while (GetMessageA(&message, NULL, 0, 0)) {
           TranslateMessage(&message);
           DispatchMessageA(&message);
       }
       return message.wParam;
    }

    LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
       switch (uMsg) {
           case WM_COMMAND:
               if (HIWORD(wParam) == BN_CLICKED) {
                   if (lParam == (long) btnCopy) {
                       textL = SendMessageA(in, EM_LINELENGTH, 0, 0);
                       if (textL == 0) {
                           MessageBoxA(window, "Input field is empty", "Error", MB_OK);
                       } else {
                           SendMessageA(in, WM_GETTEXT, 128, (LPARAM) textS);
                           textS[textL] = 0;
                           SendMessageA(out, WM_SETTEXT, 0, (LPARAM) textS);
                       }
                   }
               }
           break;
           case WM_DESTROY:
               PostQuitMessage(0);
           break;
           default:
               return DefWindowProc(hWnd, uMsg, wParam, lParam);
       }
       return 0;
    }

3.3. Ответы на контрольные вопросы

  1.  Предложите несколько способов загрузки цветного изображения из файла операционной системы X-клиента в окно на экране X-сервера средствами библиотеки Xlib.
    Можно отобразить цветное изображение поточечно, используя XDrawPoint, можно использовать пиксельные карты и отображать изображение с помощью XCopyArea, а ещё более удобным способом будет использование XCreateImage и XPutImage, или XReadBitmapFile.
  2.  Какие действия обычно выполняет функция WinMain?
    Функция
    WinMain реализует инициализацию программы и цикл обработки сообщений.
  3.  Для чего необходимо регистрировать класс окна?
    Регистрация класса окна позволяет создавать новые классы, определяющие требуемое поведение окна, если такой класс не существует в системе.
  4.  Какие характеристики класса окон можно задать при его регистрации? Какие поля структуры, описывающей класс окна, являются наиболее важными?
    Стиль класса, указатель на оконную процедуру, указатель на экземпляр программы, которая содержит процедуру, указатель на пиктограмму окна, указатель на курсор, указатель на фоновую кисть, строка с названием класса. Наиболее важными являются указатель на процедуру, указатель на экземпляр, содержащий процедуру и название класса.

4. Выводы

Современные системы предоставляют широкий набор возможностей для создания графического интерфейса. В UNIX работа с интерфейсом заключается в обмене информацией между сервером и клиентом, а в Windows – в обмене сообщениями между окнами.

Приложение

Исходные тексты программ


 

А также другие работы, которые могут Вас заинтересовать

43388. Определение реакций опор твердого тела 2.53 MB
  Составим уравнения моментов сил относительно точки С и А.3 Составим уравнение равновесия для тела CD: ∑ Fkx = 0 отсюда RD = 0 Для всей конструкции: ∑ Fkx = 0; Q P1∙cos60 XB P2 = 0 откуда XB = 2 кН Составим уравнение моментов сил относительно точки А: ∑ MА= 0 Q∙2 M P1∙sin60∙2 P1∙cos60∙4 P2∙2 RD∙7 YB∙4 = 0 откуда YB = 7196 кН Подставляя найденные значения ХB и YB в уравнение 1 найдем: Итак при шарнирном соединении в точке С модуль реакции B меньше чем при соединении скользящей заделкой. Составим уравнение моментов...
43389. История развития социальной помощи в России 208 KB
  Это было выражено в более расширенной системе помощи которая охватывала и устоявшиеся группы населения и новые формы призрения и воспитания детей предупреждения обнищания населения. В России до начала XVIII века вообще не существовало какойлибо узаконенной формы общественного призрения детей. Первым проявил инициативу митрополит Иов организовавший в 1707 году на собственные средства в Холмовской Успенской обители заведение для призрения сирот и зазорнорожденных незаконнорожденных детей. После смерти Петра I за...
43390. Анализ основных аспектов и проблемных моментов обеспечения конкурентоспособности ООО «Основание» 454 KB
  Важным элементом конкурентоспособности фирмы является конкурентоспособность товара. Это такой уровень его экономических, технических и эксплуатационных параметров, который позволяет выдержать соперничество (конкуренцию) с другими аналогичными товарами на рынке. Кроме того, конкурентоспособность - сравнительная характеристика товара, содержащая комплексную оценку всей совокупности производственных, коммерческих, организационных и экономических показателей относительно она определяется совокупностью потребительских свойств данного товара-конкурента по степени соответствия общественным потребностям с учетом затрат на их удовлетворение, цен, условий поставки и эксплуатации в процессе производительного и (или) личного потребления.
43391. Эстетические аспекты и принципы ведения электронного маркетинга 324.5 KB
  Электронный маркетинг интернет магазин сбор данных обработка данных рекламные компании экономическая эффективность. В курсовой работе проводится оценка эффективности маркетинговой деятельности в сети Интернет проектируется и анализируется интернет-магазин рассматриваются эстетические аспекты и принципы ведения электронного маркетинга.2 Кодекс использования Интернета для маркетинговых целей Американской маркетинговой ассоциации. ПРОЕКТИРОВАНИЕ И АНАЛИЗ ИНТЕРНЕТМАГАЗИНА ООО...
43392. Механизм формирования валютного курса 187 KB
  Особенности национальной валюты Республики Беларусь. Таким инструментом выступают банковские операции по обмену иностранной валюты. Среди главных задач валютного регулирования в нашей республике выделяется проблема устранения разрыва котировок между курсами белорусского рубля на внутреннем и внешнем рынках и перехода к единому обменному курсу национальной валюты. Далее мировыми деньгами стали национальные валюты ведущих мировых держав кредитные деньги.
43393. Анализ основных аспектов и проблемных моментов обеспечения конкурентоспособности ООО «Бремен» 609.5 KB
  Цель работы определить основные аспекты и проблемные моменты обеспечения конкурентоспособности торговых организаций в Республике Беларусь. В процессе работы были изучены теоретические материалы по обеспечению конкурентоспособности торговых организаций определена сущность и содержание концепции конкурентоспособности приведены методы оценки и определены пути повышения конкурентоспособности торговой...
43394. Построение схемы Делитель частоты на 10 на JK-триггерах 79 KB
  Поставленная задача: Изучить как работает JKтриггеры и построить схему Делитель частоты на 10 на JKтриггерах. В остальных случаях он функционирует в соответствии с таблицей истинности RSтриггера при этом вход J эквивалентен входу S а вход K входу R. JKтриггер относится к разряду универсальных триггеров поскольку на его основе можно построить RS D и Tтриггера.
43395. Разработка информационно-поискового справочника «Шеф-повар» 1.14 MB
  В реальных задачах информация, которую требуется обрабатывать, может иметь достаточно сложную структуру. Для ее адекватного представления используются типы данных, построенные на основе базовых типов данных, массивов и указателей. Языки высокого уровня позволяют программисту определять свои типы данных и правила работы с ними, т.е. типы, определяемые пользователем. В языке Си к ним относятся структуры, объединения и перечисления. Рассмотрим их более подробно.