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-приложений, организацией взаимодействия программ с ОС, получил практические навыки по составлению, написанию и отладке простых программ. Ознакомился с ресурсами как средством создания визуального интерфейса и задания параметров и характеристик программного приложения.


 

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

80926. Поняття наочного навчання. Класифікація наочності 31.77 KB
  На основі безпосереднього сприйняття предметів чи за допомогою зображень наочності у процесі навчання в учнів формуються образні уявлення і поняття про історичне минуле. Педагогічний словник визначає наочність як один із принципів навчання заснований на показі конкретних предметів процесів явищ. Під засобами навчання розуміють предмети прилади чи їх сукупність яка необхідна для здійснення чогонебудь.
80927. Дайте оцінку сучасним засобам навчання на уроках історії 35.54 KB
  Очевидно що одним із засобів розвитку особистості учня в цьому напрямі а також активізації пізнавальної мотивації учня на уроках історії є учбоводослідницька діяльність яка має включати в себе постановку творчих дослідницьких завдань і наукове поетапне їх вирішення. Формування дослідницьких вмінь на уроках історії можливо в процесі поєднання інтерактивних аудіовізуальних і мультимедійних технологій. Використання аудіовізуальних засобів на уроках історії практикується досить давно але раніше якість фотоаудіовідеоматеріалів їх нестача...
80929. Проблема диференційного підходу до учнів у навчанні історії 36.5 KB
  У методиці навчання історії ще немає повноцінних досліджень і рекомендацій з індивідуалізації роботи з учнями але визначені загальні підходи до діагностики їх пізнавальних здібностей і можливостей. Він писав: До слабких недостатньо підготовлених відносяться учні які при поверхневому знанні історії не виявляють помітного інтересу до її вивчення і майже зовсім не володіють адекватними прийомами й уміннями самостійної роботи з навчальним історичним матеріалом. вважаються учні що мають цілком задовільні знання з історії.
80931. Звязок методики навчання історії з іншими науками 35.76 KB
  Методичні дослідження вивчаючи процес навчання історії мають спиратися на родинні науки насамперед на історію педагогіку і психологію. Пізнавальна діяльність учнів та її результати не можуть бути повноцінними якщо навчання історії не буде відповідати сучасному рівню історичної науки її методології. Навчання історії стане науково обґрунтованим і результативним лише за умови якщо вся його структура зміст і методика будуть відповідати цим обєктивним етапам та закономірностям пізнання.
80932. Сучасні цілі та завдання шкільної історичної освіти в Україні 33.28 KB
  Головна мета шкільної історичної освіти може бути визначена як створення та становлення особистості учня як субєкта історичного розвитку та суспільних відносин громадянинапатріота. Завданнями сучасної шкільної історичної освіти є забезпечення умов для: набуття школярами ключових та предметних компетентностей; виховання повноправного громадянина патріота України який здатен вільно орієнтуватися в суспільному житті та усвідомлювати свою роль та відповідальність перед суспільством та державою формування в учнів самосвідомості та власної...
80933. Структура та методичне забезпечення підручника «Всесвітньої історії» (10-11кл.) 37.68 KB
  Бесіда – діалогічний метод навчання за допомогою якого вчитель із поставленими питаннямь спонукає учнів відтворювати раніше набуті знання робити самостійні висновкиузагальнення на основі засвоєного фактичного матеріалу. Бесіда є одним із активних методів навчання. Бесіда дозволяє залучити до діяльності на уроці дітей незалежно від їхнього рівня підготовки та індивідуальних можливостей що сприяє досягненню високих результатів у навчально – виховному процесі. Така бесіда зазвичай проводиться на початку вивчення теми чи розділу.
80934. Аналіз програми з історії України для 5 кл. Мета ,завдання та зміст 29.92 KB
  Головною метою курсу є підготовка учнів до успішного опанування систематичних курсів історії України та всесвітньої історії прищеплення інтересу до історії отримання знань у наступних класах через формування в них початкових уявлень про історію як науку та про історію України як складову світової історії елементарних вмінь з історії; поглиблення загальних дидактичних вмінь необхідних для успішного засвоєння історичної інформації в подальшому; прагнення викликати захоплення минулим України. Зміст курсу ґрунтується на таких засадах:...