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


 

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

78621. Виды государственного имущества и управление государственным имуществом 28.5 KB
  Государственная собственность – это закрепление права контроля объектов за государством. Государственная собственность в странах развитого капитализма сосредоточена сегодня в крайне ограниченном спектре отраслей которые по тем или иным причинам малорентабельны или даже убыточны что делает их непривлекательными для частного капитала. Речь идет главным образом о социальноэкономической инфраструктуре железнодорожный транспорт коммунальное хозяйство сфера образования Государственная собственность отличается тем что абсолютные права...
78622. Приватизация собственности. Формы приватизации 29.5 KB
  Формы приватизации. Основной причиной приватизации отдельных отраслей или предприятий является необходимость значительного повышения их экономической эффективности. А основной причиной для отказа от приватизации конкретного объекта может быть выполнение им политически значимой функции которая в контексте конкретного региона расценивается как слишком важная для того чтобы поставить ее в зависимость от случайностей рынка. Как показывает мировой опыт возможны следующие формы приватизации собственности: массовая ваучерная приватизация с...
78623. Современные системы и формы оплаты труда в Российской Федерации 29.5 KB
  Современные системы и формы оплаты труда в Российской Федерации. Сдельная построена в прямой зависимости от результатов труда. Сдельную оплату труда можно применять только на механических работах которые поддаются техническому нормированию. Разновидностью сдельной оплаты труда может быть сдельнопрогрессивная сдельнопремиальная косвенная сдельная и аккордная форма оплаты труда.
78624. Эффективность использования основных фондов (основного капитала) на предприятии. Амортизация 24 KB
  Эффективность использования основных фондов основного капитала на предприятии. Амортизация основных фондов есть форма возмещения износа основных фондов путем постепенного переноса ими своей стоимости на произведенный продукт то есть амортизация это денежное выражение физического и морального износа основных фондов. Накапливаемые амортизационные отчисления составляют амортизационный фонд за счет которого производится полное или частичное возмещение стоимости основных фондов. Амортизационный фонд делится на...
78625. Оборотный капитал предприятия и эффективность его использования 34.5 KB
  Наличие у предприятия собственного оборотного капитала его состав и структура скорость оборота и эффективность использования оборотного капитала во многом предопределяют финансовое состояние предприятия и устойчивость его положения на рынке. Эффективное использование оборотного капитала играет большую роль в обеспечении нормальной работы предприятия повышении рентабельности хозяйственной деятельности и зависит от множества факторов. Обобщающим показателем эффективности использования оборотного капитала является его рентабельность Рок...
78626. Прибыль предприятия, ее формирование и использование 53.5 KB
  Прибыль предприятия ее формирование и использование. Прибыль в рыночном хозяйстве является вознаграждением такого специфического фактора как предпринимательство. Вовторых мы не можем трактовать прибыль как своеобразную равновесную цену по аналогии с рынком труда капитала и земли. Предприниматель в результате выполнения этих функций вправе претендовать на определенный доход прибыль.
78627. Организационно-правовые формы предприятия и их развитие в современных условиях 44.5 KB
  Организационноправовые формы предприятия и их развитие в современных условиях Фирма хозяйствующий субъект обладающий экономической самостоятельностью для осуществления производственной деятельности с целью получения прибыли. В настоящее время наибольшее распространение получили следующие формы предприятий организаций: индивидуальные предприятия; товарищества; акционерные общества; объединения предприятий ФПГ; государственные предприятия; смешанные предприятия. Преимущества: быстрая организация предприятия открытие и закрытие;...
78628. Эффективность производственно-хозяйственной деятельности предприятия. Показатели экономической эффективности 38.5 KB
  Эффективность производства – важнейшая качественная характеристика хозяйствования на всех уровнях. Под экономической эффективностью производства понимается степень использования производственного потенциала которая выявляется соотношением результатов и затрат общественного производства. Чем выше результат при тех же затратах чем быстрее он растет в расчете на единицу затрат общественно необходимого труда или чем меньше затрат на единицу полезного эффекта тем выше эффективность производства. Эффективность производства – это показатель...
78629. Производительность труда и ее показатели 27.5 KB
  Производительность труда измеряется количеством продукции вырабатываемой работником в сфере материального производства за единицу рабочего времени или количеством времени которое затрачивается на производство единицы продукции. Повышение производительности труда ведет к увеличению количества продукции производимой в единицу времени...