69998

СРЕДСТВА ВВОДА ИНФОРМАЦИИ

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

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

Цель: Ознакомление с устройствами, осуществляющими ввод информации в компьютер (мышь, клавиатура), их программным представлением в операционной системе, а также с программными элементами взаимодействия пользователя и ЭВМ (диалоговые окна), получение практических навыков по составлению...

Русский

2014-10-13

57 KB

5 чел.

Министерство образования и науки Украины

Харьковский Национальный Университет Радиоэлектроники

Кафедра ЭВМ

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

Тема: «СРЕДСТВА ВВОДА ИНФОРМАЦИИ»

Выполнил:                                                                      Проверил:

ст. гр. КИ-08-4                                                                Бугрий А. Н.

Кравец Артём Валерьевич

2009

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

Тема: «СРЕДСТВА ВВОДА ИНФОРМАЦИИ»

Цель: Ознакомление с устройствами, осуществляющими ввод информации в компьютер (мышь, клавиатура), их программным представлением в операционной системе, а также  с программными элементами взаимодействия пользователя и ЭВМ (диалоговые окна), получение практических навыков по составлению, написанию и отладке программ, осуществляющих взаимодействие ЭВМ-пользователь.

Задание:

Вариант 6

Написать программу, которая рисует непрерывную линию при передвижении мыши по окну приложения с нажатой левой кнопкой. Изображение должно обновляться по приходу события WM_PAINT.

Листинг:

#include <windows.h>         // подключение библиотеки с функциями API

#include <time.h>

HINSTANCE hInst;  // Указатель приложения

LPCTSTR szWindowClass = "Students";

LPCTSTR szTitle = "Лабораторная работа №3";

// Предварительное описание функций

ATOM MyRegisterClass(HINSTANCE hInstance);

BOOL InitInstance(HINSTANCE, int);

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

// Основная программа

int APIENTRY WinMain(HINSTANCE hInstance,

                    HINSTANCE hPrevInstance,

                    LPSTR     lpCmdLine,

                    int       nCmdShow)

{

MSG msg;

// Регистрация класса окна

MyRegisterClass(hInstance);

// Создание окна приложения

if (!InitInstance (hInstance, nCmdShow))

{

 return FALSE;

}

// Цикл обработки сообщений

while (GetMessage(&msg, NULL, 0, 0))

{

  TranslateMessage(&msg);

  DispatchMessage(&msg);

}

return msg.wParam;

}

ATOM MyRegisterClass(HINSTANCE hInstance)

{

WNDCLASSEX wcex;

wcex.cbSize         = sizeof(WNDCLASSEX);

wcex.style   = CS_HREDRAW | CS_VREDRAW ; // стиль окна

wcex.lpfnWndProc = (WNDPROC)WndProc; // оконная процедура

wcex.cbClsExtra  = 0;      

wcex.cbWndExtra  = 0;

wcex.hInstance  = hInstance;  // указатель приложения

wcex.hIcon   = LoadIcon(NULL, IDI_APPLICATION);  // опре-деление иконки

wcex.hCursor  = LoadCursor(NULL, IDC_ARROW);    // опреде-ление курсора

wcex.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);   // ус-тановка фона

wcex.lpszMenuName = NULL;  // определение меню

wcex.lpszClassName = szWindowClass; // имя класса

wcex.hIconSm  = NULL;

return RegisterClassEx(&wcex); // регистрация класса окна

}

BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)

{

  HWND hWnd;

  hInst = hInstance; // сохраняет указатель приложения в переменной hInst

  hWnd=CreateWindow(szWindowClass, // имя класса окна

szTitle,   // имя приложения

WS_OVERLAPPEDWINDOW, // стиль окна

CW_USEDEFAULT, // положение по Х

CW_USEDEFAULT,  // положение по Y

CW_USEDEFAULT,    // размер по Х

CW_USEDEFAULT,    // размер по Y

NULL, // описатель родительского окна

NULL,       // описатель меню окна

hInstance,  // указатель приложения

NULL);     // параметры создания.

  if (!hWnd) // Если окно не создалось, функция возвращает FALSE

  {

     return FALSE;

  }

  ShowWindow(hWnd, nCmdShow);  // Показать окно

  UpdateWindow(hWnd);   // Обновить окно

  return TRUE;    //Успешное завершение функции

}

 

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)

{

 srand((unsigned)time(NULL));

 static HPEN hPen,hOldPen;

    static POINT pt, mas[10000];

    static HDC hdc;

    static int x, y, i=0;

 static bool temp = false, box = false;

 static COLORREF crLine;

    switch (message)

    {

    case WM_LBUTTONDOWN:

   hdc = GetDC(hwnd);

        

         x = LOWORD(lParam);

   y = HIWORD(lParam);

   MoveToEx(hdc,x,y,NULL);

 

   temp=true;

         InvalidateRect (hwnd, NULL, TRUE);

         return 0;

    case WM_MOUSEMOVE:

         if (temp)

         {

     crLine = RGB(rand()%255,rand()%255,rand()%255);

     hPen = (HPEN)CreatePen(PS_SOLID,1,crLine);

     hOldPen = (HPEN)SelectObject(hdc,hPen);

              pt.x = LOWORD (lParam);

              pt.y = HIWORD (lParam);

              LineTo   (hdc, pt.x, pt.y);

      mas[i].x = pt.x;

      mas[i].y = pt.y;

     SelectObject(hdc,hOldPen);

     DeleteObject(hPen);

        i++;

     if(i>10)

      MessageBox(NULL, "Ошибка в системе!:)", "Ошибка", MB_OK);

     

         }

         return 0;

         

    case WM_LBUTTONUP:

         temp = false;

   box = true;

ReleaseDC (hwnd, hdc) ;

         return 0;

         

    case WM_PAINT:

  if(box)

  {

    hdc = GetDC(hwnd);

          MoveToEx(hdc,x,y,NULL);

          for (int j=0; j < i; ++j)

            LineTo(hdc, mas[j].x, mas[j].y) ;

  

       

         ReleaseDC (hwnd, hdc) ;

  }

         return 0;

              

    case WM_DESTROY:

         PostQuitMessage (0) ;

         return 0;

    }

    return DefWindowProc (hwnd, message, wParam, lParam) ;

}

Результат:

Выводы: В этой лабораторной работе я ознакомился со структурой Windows-приложений, организацией взаимодействия программ с ОС, получил практические навыки по составлению, написанию и отладке простых программ. Ознакомился с ресурсами как средством создания визуального интерфейса и задания параметров и характеристик программного приложения.


 

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

52721. Dora, the Explorer 241 KB
  Dora is an adventurous1 who lives inside a computer. Determined, positive, helpful2 and caring, Dora is always ready for adventure. She's filled with a sense of wonder, as she explores her world with her faithful3 Backpack, Map and her best friend Boots.
52722. Сценарій новорічного свята «Зоряна доріжка» 47.5 KB
  Сценарій новорічного свята Зоряна доріжка для учнів початкових класів Ведмедик Мудрійко Зайчик Косько Рисеня Русько Білочка Їжачок Тітонька Сова Вірус 1 Вірус 2 Дракон Змія Снігуронька Святий Миколай Лісова галявина перед головною ялинкою. Їжачок: І взяти її штурмом Білочка: Можна зліпити сніговика Зайчик: А коли замерзне ставок то можна кататися на ковзанах Мудрійко: А головне це Новий рік Рисеня: Це подарунки ялинка хороводи та різні розваги Білочка: А ви вже написали листа Святому...
52724. До майстерності – через передовий досвід 69 KB
  Авторська школа О. Як це починалось Знайомтесь Авторська школа О. Сахнівська школа славилась Літописом надзвичайних справ а саме: майстрували повітряну кулю; майстрували дво чи триступінчасті ракети які запускали зі шкільного Байконуру; створили €œрозумні двері з кодовим замком для контрольних робіт; створили обчислювальні машини Ромашка і Ромашка 2 €; створили Музей бойової слави; будівництво Палацу здоровя; спорудження Криниці совісті; випуск шкільної газети €œДівочі гори та інші. І ще...
52725. Створення умов для самореалізації особистості кожного учня на уроках математики 75.5 KB
  Досягти освітньої мети означає озброїти учнів максимумом знань з основ алгебри та геометрії; сприяти формуванню математичних навичок; ознайомити їх з доступними методами сучасної науки математики; показати її місце в суспільнокорисній діяльності. Практичноприкладні цілі передбачають формування в учнів умінь і навичок повязувати теорію з практикою: розвязувати задачі виробничого і життєвого характеру математично осмислювати навколишні явища тощо. Учитель не лише має можливість а і зобовязаний активно формувати в учнів науковий...
52726. Пізнавальний інтерес 269.5 KB
  Так справді нинішній стан навчання учнів молодшого шкільного вікузасвідчує що 80 дітей залишаються пасивними на уроці і ця пасивністьспостерігається упродовж багатьох років навчання в школі. При цьому навчально пізнавальна діяльність організовується так щоб діти шукали різницю між новими та вже отриманими знаннями приймають альтернативні рішення мають змогу зробити відкриття формулювали свої власні ідеї та думки за допомогою різноманітних засобів навчальної співпраці. При цьому ситуативний інтерес який проявляється через позитивні...
52727. Досвід роботи з упровадження інтерактивних і мультимедійних технологій на уроках української літератури як засобу формування компетентної особистості 76 KB
  Моя система роботи будується на сучасних педагогічних технологіях головна мета яких зробити процес навчання творчим особистісно зорієнтованим. Під час етапу цілеутворення та планування роботи учні спільно працюють на уроці з учителем. Продумуючи кожен свій крок надаю перевагу таким формам роботи котрі сприяли б виробленню в учнів психологічних установок на самовдосконалення націлювали б їх на високі моральні цінностівідповідальне ставлення до життя.
52728. Реалізація соціальної, мотиваційної, функціональної компетенцій на уроках української мови та літератури 60 KB
  Насамперед учні мають засвоїти поняття мови і мовлення; стилі мовлення; монологічне і діалогічне мовлення;текст його ознаки; тему та основну думку тексту; типи мовлення. Хто є адресантом а хто адресатом мовлення У чому полягає діяльність адресанта і діяльність адресата Які умови потрібні щоб відбулося спілкування Від чого залежить успішність спілкування 2. Чи добре ви засвоїли зміст слів мова і мовлення Поширте поданий текст вибравши зі слів у дужках ті які підходять за змістом і поставивши їх у потрібному відмінку. Діти засвоюють...
52729. Формування життєвих компетентностей через проектну діяльність 346.5 KB
  Світові тенденції розвитку середньої загальної освіти характеризуються переходом від традиційної репродуктивної моделі школи до розвиваючої конструктивної моделі, орієнтованої на результат. Обновилася функція школи: не тільки навчання і виховання, але і соціалізація школяра, формування життєвої компетентності, розвиток соціально - значимих якостей особистості.