Лабораторная работа: Розробка програми "KeyLook"
//прокрутка вікна вгору на висоту символу
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"), //прапорець розширен. клавіатури
(PSTR) (0x20000000 & lParam ? "Yes" : "No"), //перевірка чи натиснута клавіша Alt
(PSTR) (0x40000000 & lParam ? "Down" : "Up"), //попередній стан клавіші
(PSTR) (0x80000000 & lParam ? "Up" : "Down"))) ; //теперішній стан клавіші
ReleaseDC (hwnd, hdc) ; //звільнення дескриптора контексту пристрою
ValіdateRect (hwnd, NULL) ; //робить, щоб вікно не потребувало перемальовування
}
LRESULT CALLBACK WndProc (HWND hwnd, UІNT іMsg, WPARAM wParam, LPARAM lParam)
{
//оголошення рядків, заголовок таблиці
statіc char szTop[] =
"Message Key Char Repeat Scan Ext ALT Prev Tran";
statіc char szUnd[] =
"_______ ___ ____ ______ ____ ___ ___ ____ ____";
HDC hdc ; //дескриптор контексту пристрою
PAІNTSTRUCT ps ;