Программирование для IBM OS2


Приложение KBDMSG - часть 3


// Возвращаем пространство отображения WinReleasePS (hps); return FALSE; }

// Во время перерисовки стираем содержимое // окна и выводим строку заголовка таблицы case WM_PAINT : { // Получаем пространство отображения hps = WinBeginPaint (hWnd, NULLHANDLE, &rec);

// Закрашиваем область, требующую обновление WinFillRect (hps, &rec, CLR_WHITE);

// Выбираем в пространство отображения шрифт // с фиксированной шириной символов SetCourierFont(hps);

// Рисуем заголовок таблицы в нижней части окна ptl.x = cxChar; ptl.y = cyDesc + cyChar; GpiCharString At (hps, &ptl, strlen(szTitle), szTitle);

// Устанавливаем шрифт, выбранный в пространство // отображения по умолчанию ResetFont(hps);

// Возвращаем пространство отображения WinEndPaint (hps); return 0; }

case WM_ERASEBACKGROUND : return(MRFROMLONG(1L));

// При изменении размеров окна сохраняем новые // размеры и перерисовываем окно case WM_SIZE : { cxClient = SHORT1FROMMP (mp2); cyClient = SHORT2FROMMP (mp2);

// Все окно требует перерисовки WinInvalidateRect (hWnd, NULL, TRUE); return 0; }

// Это сообщение появляется, когда пользователь // нажимает или отжимает клавишу case WM_CHAR : { // Получаем пространство отображения hps = WinGetPS (hWnd);

// Выбираем в пространство отображения шрифт // с фиксированной шириной символов SetCourierFont(hps);

// Выделяем параметры клавиатурного сообщения // и сохраняем их в структуре cm cm.chr = CHARMSG(&msg) ->chr; cm.vkey = CHARMSG(&msg) ->vkey; cm.scancode = CHARMSG(&msg) ->scancode; cm.cRepeat = CHARMSG(&msg) ->cRepeat; cm.fs = CHARMSG(&msg) ->fs;

// Готовим строку для отображения параметров // клавиатурного сообщения sprintf (szMsg, "%04x %04x %04x %d %c", cm.vkey, cm.scancode, cm.fs, cm.cRepeat, cm.fs & KC_CHAR ? cm.chr : ' ');

// Отображаем строку над заголовком таблицы // в нижней части окна ptl.x = cxChar; ptl.y = 2 * cyChar + cyDesc;

nMsgSize = strlen(szMsg); GpiCharString At (hps, &ptl, nMsgSize, szMsg);




Начало  Назад  Вперед



Книжный магазин