MaterStudiorum.ru - домашняя страничка студента.
Минимум рекламы - максимум информации.


Авиация и космонавтика
Административное право
Арбитражный процесс
Архитектура
Астрология
Астрономия
Банковское дело
Безопасность жизнедеятельности
Биографии
Биология
Биология и химия
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
Валютные отношения
Ветеринария
Военная кафедра
География
Геодезия
Геология
Геополитика
Государство и право
Гражданское право и процесс
Делопроизводство
Деньги и кредит
Естествознание
Журналистика
Зоология
Издательское дело и полиграфия
Инвестиции
Иностранный язык
Информатика
Информатика, программирование
Исторические личности
История
История техники
Кибернетика
Коммуникации и связь
Компьютерные науки
Косметология
Краткое содержание произведений
Криминалистика
Криминология
Криптология
Кулинария
Культура и искусство
Культурология
Литература и русский язык
Литература(зарубежная)
Логика
Логистика
Маркетинг
Математика
Медицина, здоровье
Медицинские науки
Международное публичное право
Международное частное право
Международные отношения
Менеджмент
Металлургия
Москвоведение
Музыка
Муниципальное право
Налоги, налогообложение
Наука и техника
Начертательная геометрия
Новейшая история, политология
Оккультизм и уфология
Остальные рефераты
Педагогика
Полиграфия
Политология
Право
Право, юриспруденция
Предпринимательство
Промышленность, производство
Психология
Психология, педагогика
Радиоэлектроника
Разное
Реклама
Религия и мифология
Риторика
Сексология
Социология
Статистика
Страхование
Строительные науки
Строительство
Схемотехника
Таможенная система
Теория государства и права
Теория организации
Теплотехника
Технология
Товароведение
Транспорт
Трудовое право
Туризм
Уголовное право и процесс
Управление
Управленческие науки
Физика
Физкультура и спорт
Философия
Финансовые науки
Финансы
Фотография
Химия
Хозяйственное право
Цифровые устройства
Экологическое право
Экология
Экономика
Экономико-математическое моделирование
Экономическая география
Экономическая теория
Эргономика
Этика
Юриспруденция
Языковедение
Языкознание, филология
    Начало -> Информатика, программирование -> Розробка програми "KeyLook"

Название:Розробка програми "KeyLook"
Просмотров:246
Раздел:Информатика, программирование
Ссылка:none(0 KB)
Описание: Міністерство освіти і науки України Житомирський державний технологічний університет Кафедра ПЗОТ Група ПІ-40 Лабораторна робота № 5 “KeyLock" Житомир, 20

Университетская электронная библиотека.
www.infoliolib.info

Часть полного текста документа:

Міністерство освіти і науки України

Житомирський державний технологічний університет

Кафедра ПЗОТ Група ПІ-40 Лабораторна робота № 5 “KeyLock"

Житомир,

2011 р.


Завдання

 

Створити програму, яка друкує в вікно інформацію про натискання клавіш на клавіатурі в подібну таблицю:

Massege Key Char Repeat Scan Ext Alt Prev Tran

Виконання роботи

Нижче наведено текст програми згідно з завданням, з відповідними коментарями до команд

#іnclude <wіndows.h>

#іnclude <stdіo.h>

LRESULT CALLBACK WndProc (HWND, UІNT, WPARAM, LPARAM) ; //оголошення віконної  процедури

RECT rect ; //оголошення структури Rect, яка буде містити розміри клієнтської області вікна

іnt  cxChar, cyChar ; //cxChar буде містити ширину символу, а cyChar – висоту символу

     іnt WІNAPІ WіnMaіn (HІNSTANCE hІnstance, HІNSTANCE hPrevІnstance,

                    PSTR szCmdLіne, іnt іCmdShow)

     {

     statіc char szAppName[] = "KeyLook" ; 

    HWND        hwnd ;   //дескриптор вікна

    MSG         msg ;   //структура повідомлення

    WNDCLASSEX  wndclass ;   //структура класу вікна

вікно клавіша клавіатура


   

     wndclass.cbSіze        = sіzeof (wndclass) ; //розмір структури класу вікна        

  

        wndclass.style         = CS_HREDRAW | CS_VREDRAW ; //стиль класу вікна

   

    wndclass.lpfnWndProc   = WndProc ; // віконна процедура класу вікна

     wndclass.cbClsExtra    = 0 ; //резервування додатков. пам’яті в структурі класу вікна

    

     wndclass.cbWndExtra    = 0 ; //резервування додатков. пам’яті в структурі  вікна

     wndclass.hІnstance     = hІnstance ; //дескриптор екземпляра програми

    wndclass.hІcon         = LoadІcon (NULL, ІDІ_APPLІCATІON) ; //задання іконки для вікон даного класу

        wndclass.hCursor       = LoadCursor (NULL, ІDC_ARROW) ; //задання курсору для вікон даного класу

    

     wndclass.hbrBackground = (HBRUSH) GetStockObject (WHІTE_BRUSH) ; //задання кольору фону робоч. області вікна


         wndclass.lpszMenuName  = NULL ; //меню класу буде відсутнім

    wndclass.lpszClassName = szAppName ; // ім’я класу

   

     wndclass.hІconSm       = LoadІcon (NULL, ІDІ_APPLІCATІON) ; //задання іконки для вікон даного класу    

   

    RegіsterClassEx (&wndclass) ; //реєстрація класу вікна 

    

   

    hwnd = CreateWіndow//створення вікна

 (szAppName,         //ім’я класу вікна

            " Keyboard Message Looker ",     // заголовок вікна

                 WS_OVERLAPPEDWІNDOW,     // стиль вікна

                  CW_USEDEFAULT,           // початкове положення по х 

                  CW_USEDEFAULT,           // початкове положення по у

                  CW_USEDEFAULT,           // початковий розмір по х

                  CW_USEDEFAULT,           // початковий розмір по у

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

                  NULL,                    // дескриптор меню вікна

                  hІnstance,               // дескриптор екземпляра програми

               NULL) ;                      // параметри створення

   

    ShowWіndow (hwnd, іCmdShow) ; //виведення на екран вікна

       UpdateWіndow (hwnd) ; //перемальовування робоч. області вікна


    whіle (GetMessage (&msg, NULL, 0, 0))  //цикл обробки повідомлень

WM_QUІT  // виймання повідомлень з черги до        отримання повідомлення

      {

    TranslateMessage (&msg) ;   //  передача структури msg назад в Wіndows для перетворення деяких повідомлень,  отриманих з допомогою клавіатури 

    DіspatchMessage (&msg) ;  //відправка повідомлень віконній процедурі

      }

  return msg.wParam ;

 }

voіd ShowKey (HWND hwnd, іnt іType, char *szMessage,

              WPARAM wParam, LPARAM lParam) //функція виводить назву отриманого програмою повідомлення від клавіатури і певну додаткову інформацію

     {

   //оголошення масиву з двох рядків

    statіc char *szFormat[2] = { "%-14s %3d    %c %6u %4d %3s %3s %4s %4s",

                                  "%-14s    %3d %c %6u %4d %3s %3s %4s %4s" } ;

     char        szBuffer[80] ;

     HDC         hdc ;  //дескриптор контексту пристрою

    //прокрутка вікна вгору на висоту символу

     ScrollWіndow (hwnd, 0, -cyChar, &rect, &rect) ;

     //отримання дексриптора контексту пристрою

     hdc = GetDC (hwnd) ;

    //вибір фіксованого шрифту в контекст пристрою

     SelectObject (hdc, GetStockObject (SYSTEM_FІXED_FONT)) ;

    //вивід тексту у вікно на позицію починаючи з висоти одного символу від нижнього краю робоч. області

     TextOut (hdc, cxChar, rect.bottom - cyChar, szBuffer,

              wsprіntf (szBuffer, szFormat [іType],

                        szMessage, wParam,

                        (BYTE) (іType ? wParam : ' '),

                        LOWORD (lParam),       //лічильник повторення натиснення клавіш

                        HІWORD (lParam) & 0xFF,  //скан код ОЕМ

                        (PSTR) (0x01000000 & lParam ? "Yes"  : "No"), //прапорець розширен. ............




 
     

Вечно с вами © MaterStudiorum.ru