
Міністерство освіти, науки, молоді та спорту України
Житомирський державний технологічний університет
ФІКТ
Кафедра ПЗОТ
Група ПІК-9
Лабораторна робота №4 “KeyLock"
Виконав : Оленюк О.О.
Перевірив : Власенко О.В.
2012
Завдання:
Створити програму, яка друкує в вікно інформацію про натискання клавіш на клавіатурі в подібну таблицю:
Massege |
Key |
Char |
Repeat |
Scan |
Ext |
Alt |
Prev |
Tran |
Виконання роботи:
#include <windows.h>
#include <stdio.h>
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; //оголошення вiкон. процедури
RECT rect ; //оголошення структури Rect, яка буде мiстити розмiри клiєнт. областi вiкна
int cxChar, cyChar ; //cxChar буде мiстити ширину символа, а cyChar – висоту символа
Int winapi WinMain (hinstance hInstance, hinstance hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static char szAppName[] = "KeyLook" ;
HWND hwnd ; //дескриптор вiкна
MSG msg ; //структура повiдомлення
WNDCLASSEX wndclass ; //структура класу вiкна
wndclass.cbSize = sizeof (wndclass) ; //розмiр структури класу вiкна
wndclass.style = CS_HREDRAW | CS_VREDRAW ; //стиль класу вiкна
wndclass.lpfnWndProc = WndProc ; // вiконна процедура классу вiкна
wndclass.cbClsExtra = 0 ; //резервування додатков. пам’ятi в структурi класу вiкна
wndclass.cbWndExtra = 0 ; //резервування додатков. пам’ятi в структурi вiкна
wndclass.hInstance = hInstance ; //дескриптор екземпляра програми
wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ; //задання iконки для вiкон данного класу
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ; //задання курсора для вiкон данного класу
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ; //задання кольору фону робоч. областi вiкна
wndclass.lpszMenuName = NULL ; //меню класу буде вiдсутнiм
wndclass.lpszClassName = szAppName ; // iм’я класу
wndclass.hIconSm = LoadIcon (NULL, IDI_APPLICATION) ; //задання iконки для вiкон данного класу
RegisterClassEx (&wndclass) ; //регiстрацiя класу вiкна
hwnd = CreateWindow//створення вiкна
(szAppName, //iм’я классу вiкна
" Keyboard Message Looker ", // заголовок вiкна
WS_OVERLAPPEDWINDOW, // стиль вiкна
CW_USEDEFAULT, // початкове положення по х
CW_USEDEFAULT, // початкове положення по у
CW_USEDEFAULT, // початковий розмiр по х
CW_USEDEFAULT, // початковий розмiр по у
NULL, // дескриптор батькiвського вiкна
NULL, // дескриптор меню вiкна
hInstance, // дескриптор екземпляра програми
NULL) ; // параметри створення
ShowWindow (hwnd, iCmdShow) ; //виведення на екран вiкна
UpdateWindow (hwnd) ; //перемалювання робоч. областi вiкна
while (GetMessage (&msg, NULL, 0, 0)) //цикл обробки повiдомлень
WM_QUIT // виймання повiдомлень з черги до отримання повiдомлення
{
TranslateMessage (&msg) ; // передача структури msg назад в Windows для преобразования деяких повiдомленнь отриманих з допомогою клавiатури
DispatchMessage (&msg) ; //вiдправка повiдомлень вiконiй процедурi
}
return msg.wParam ;
}